diff options
Diffstat (limited to 'tokenizer.c')
| -rw-r--r-- | tokenizer.c | 35 | 
1 files changed, 24 insertions, 11 deletions
| diff --git a/tokenizer.c b/tokenizer.c index 5cd904451db3..18532240dbb9 100644 --- a/tokenizer.c +++ b/tokenizer.c @@ -1,4 +1,4 @@ -/*	$NetBSD: tokenizer.c,v 1.24 2016/02/17 19:47:49 christos Exp $	*/ +/*	$NetBSD: tokenizer.c,v 1.28 2016/04/11 18:56:31 christos Exp $	*/  /*-   * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@  #if 0  static char sccsid[] = "@(#)tokenizer.c	8.1 (Berkeley) 6/4/93";  #else -__RCSID("$NetBSD: tokenizer.c,v 1.24 2016/02/17 19:47:49 christos Exp $"); +__RCSID("$NetBSD: tokenizer.c,v 1.28 2016/04/11 18:56:31 christos Exp $");  #endif  #endif /* not lint && not SCCSID */ @@ -49,7 +49,6 @@ __RCSID("$NetBSD: tokenizer.c,v 1.24 2016/02/17 19:47:49 christos Exp $");  #include <string.h>  #include "histedit.h" -#include "chartype.h"  typedef enum {  	Q_none, Q_single, Q_double, Q_one, Q_doubleone @@ -66,8 +65,22 @@ typedef enum {  #define	tok_malloc(a)		malloc(a)  #define	tok_free(a)		free(a)  #define	tok_realloc(a, b)	realloc(a, b) -#define	tok_strdup(a)		Strdup(a) +#ifdef NARROWCHAR +#define	Char			char +#define	FUN(prefix, rest)	prefix ## _ ## rest +#define	TYPE(type)		type +#define	STR(x)			x +#define	Strchr(s, c)		strchr(s, c) +#define	tok_strdup(s)		strdup(s) +#else +#define	Char			wchar_t +#define	FUN(prefix, rest)	prefix ## _w ## rest +#define	TYPE(type)		type ## W +#define	STR(x)			L ## x +#define	Strchr(s, c)		wcschr(s, c) +#define	tok_strdup(s)		wcsdup(s) +#endif  struct TYPE(tokenizer) {  	Char	*ifs;		/* In field separator			 */ @@ -81,13 +94,13 @@ struct TYPE(tokenizer) {  }; -private void FUN(tok,finish)(TYPE(Tokenizer) *); +static void FUN(tok,finish)(TYPE(Tokenizer) *);  /* FUN(tok,finish)():   *	Finish a word in the tokenizer.   */ -private void +static void  FUN(tok,finish)(TYPE(Tokenizer) *tok)  { @@ -104,7 +117,7 @@ FUN(tok,finish)(TYPE(Tokenizer) *tok)  /* FUN(tok,init)():   *	Initialize the tokenizer   */ -public TYPE(Tokenizer) * +TYPE(Tokenizer) *  FUN(tok,init)(const Char *ifs)  {  	TYPE(Tokenizer) *tok = tok_malloc(sizeof(*tok)); @@ -145,7 +158,7 @@ FUN(tok,init)(const Char *ifs)  /* FUN(tok,reset)():   *	Reset the tokenizer   */ -public void +void  FUN(tok,reset)(TYPE(Tokenizer) *tok)  { @@ -160,7 +173,7 @@ FUN(tok,reset)(TYPE(Tokenizer) *tok)  /* FUN(tok,end)():   *	Clean up   */ -public void +void  FUN(tok,end)(TYPE(Tokenizer) *tok)  { @@ -189,7 +202,7 @@ FUN(tok,end)(TYPE(Tokenizer) *tok)   *		cursorc	if !NULL, argv element containing cursor   *		cursorv	if !NULL, offset in argv[cursorc] of cursor   */ -public int +int  FUN(tok,line)(TYPE(Tokenizer) *tok, const TYPE(LineInfo) *line,      int *argc, const Char ***argv, int *cursorc, int *cursoro)  { @@ -440,7 +453,7 @@ FUN(tok,line)(TYPE(Tokenizer) *tok, const TYPE(LineInfo) *line,   *	Simpler version of tok_line, taking a NUL terminated line   *	and splitting into words, ignoring cursor state.   */ -public int +int  FUN(tok,str)(TYPE(Tokenizer) *tok, const Char *line, int *argc,      const Char ***argv)  { | 
