diff options
| author | Pedro F. Giffuni <pfg@FreeBSD.org> | 2017-09-13 15:57:58 +0000 |
|---|---|---|
| committer | Pedro F. Giffuni <pfg@FreeBSD.org> | 2017-09-13 15:57:58 +0000 |
| commit | 8c36b0434ca4a5ba6df2724542048eb219af7a34 (patch) | |
| tree | b6315213d0c73ac7d01023a1a82d568559b68b19 /tokenizer.c | |
| parent | 70f1d4d70d0c78aa69c52d977130f4046851c4a3 (diff) | |
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) { |
