diff --git a/dist/nvi/clib/mkstemp.c b/dist/nvi/clib/mkstemp.c index 872bd2660b3e..d7a8060e9cf7 100644 --- a/dist/nvi/clib/mkstemp.c +++ b/dist/nvi/clib/mkstemp.c @@ -1,4 +1,4 @@ -/* $NetBSD: mkstemp.c,v 1.1.1.2 2008/05/18 14:29:38 aymeric Exp $ */ +/* $NetBSD: mkstemp.c,v 1.2 2011/03/21 14:53:02 tnozaki Exp $ */ /* * Copyright (c) 1987, 1993 @@ -119,7 +119,7 @@ _gettemp(char *path, register int *doopen) if (*trv == 'z') *trv++ = 'a'; else { - if (isdigit(*trv)) + if (isdigit((unsigned char)*trv)) *trv = 'a'; else ++*trv; diff --git a/dist/nvi/common/cut.c b/dist/nvi/common/cut.c index eb40385f4edc..5b86734ef028 100644 --- a/dist/nvi/common/cut.c +++ b/dist/nvi/common/cut.c @@ -1,4 +1,4 @@ -/* $NetBSD: cut.c,v 1.3 2009/12/23 12:44:21 mlelstv Exp $ */ +/* $NetBSD: cut.c,v 1.4 2011/03/21 14:53:02 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -69,7 +69,7 @@ int cut(SCR *sp, CHAR_T *namep, MARK *fm, MARK *tm, int flags) { CB *cbp; - CHAR_T name = '\0'; + ARG_CHAR_T name = '\0'; db_recno_t lno; int append, copy_one, copy_def; @@ -97,7 +97,7 @@ cut(SCR *sp, CHAR_T *namep, MARK *fm, MARK *tm, int flags) */ append = copy_one = copy_def = 0; if (namep != NULL) { - name = *namep; + name = (UCHAR_T)*namep; if (LF_ISSET(CUT_NUMREQ) || (LF_ISSET(CUT_NUMOPT) && (LF_ISSET(CUT_LINEMODE) || fm->lno != tm->lno))) { copy_one = 1; diff --git a/dist/nvi/common/cut.h b/dist/nvi/common/cut.h index 40ffde0875d2..e4bcf6d6d688 100644 --- a/dist/nvi/common/cut.h +++ b/dist/nvi/common/cut.h @@ -1,4 +1,4 @@ -/* $NetBSD: cut.h,v 1.3 2009/12/23 12:44:21 mlelstv Exp $ */ +/* $NetBSD: cut.h,v 1.4 2011/03/21 14:53:02 tnozaki Exp $ */ /*- * Copyright (c) 1991, 1993, 1994 @@ -19,7 +19,7 @@ struct _cb { LIST_ENTRY(_cb) q; /* Linked list of cut buffers. */ TEXTH textq; /* Linked list of TEXT structures. */ /* XXXX Needed ? Can non ascii-chars be cut buffer names ? */ - CHAR_T name; /* Cut buffer name. */ + ARG_CHAR_T name; /* Cut buffer name. */ size_t len; /* Total length of cut text. */ #define CB_LMODE 0x01 /* Cut was in line mode. */ @@ -66,9 +66,9 @@ struct _text { /* Text: a linked list of lines. */ * Translate upper-case buffer names to lower-case buffer names. */ #define CBNAME(sp, cbp, nch) { \ - CHAR_T L__name; \ - L__name = ISUPPER((unsigned char)nch) ? \ - TOLOWER((unsigned char)nch) : (nch); \ + ARG_CHAR_T L__name; \ + L__name = ISUPPER(nch) ? \ + TOLOWER(nch) : (nch); \ for (cbp = sp->wp->cutq.lh_first; \ cbp != NULL; cbp = cbp->q.le_next) \ if (cbp->name == L__name) \ diff --git a/dist/nvi/common/extern.h b/dist/nvi/common/extern.h index a73283473df7..1dc8708e3452 100644 --- a/dist/nvi/common/extern.h +++ b/dist/nvi/common/extern.h @@ -1,4 +1,4 @@ -/* $NetBSD: extern.h,v 1.3 2009/11/14 23:31:37 christos Exp $ */ +/* $NetBSD: extern.h,v 1.4 2011/03/21 14:53:02 tnozaki Exp $ */ /* Do not edit: automatically built by build/distrib. */ SCR *api_fscreen __P((int, char *)); @@ -66,7 +66,7 @@ int v_key_init __P((SCR *)); void v_key_ilookup __P((SCR *)); size_t v_key_len __P((SCR *, ARG_CHAR_T)); u_char *v_key_name __P((SCR *, ARG_CHAR_T)); -int v_key_val __P((SCR *, ARG_CHAR_T)); +e_key_t v_key_val __P((SCR *, ARG_CHAR_T)); int v_event_push __P((SCR *, EVENT *, const CHAR_T *, size_t, u_int)); int v_event_get __P((SCR *, EVENT *, int, u_int32_t)); void v_event_err __P((SCR *, EVENT *)); diff --git a/dist/nvi/common/gs.h b/dist/nvi/common/gs.h index 86a73ff17e98..3198eaf81e44 100644 --- a/dist/nvi/common/gs.h +++ b/dist/nvi/common/gs.h @@ -1,4 +1,4 @@ -/* $NetBSD: gs.h,v 1.4 2009/01/18 03:43:45 lukem Exp $ */ +/* $NetBSD: gs.h,v 1.5 2011/03/21 14:53:02 tnozaki Exp $ */ /*- * Copyright (c) 1993, 1994 @@ -81,7 +81,7 @@ struct _gs { DB *msg; /* Message catalog DB. */ MSGH msgq; /* User message list. */ #define DEFAULT_NOPRINT '\1' /* Emergency non-printable character. */ - CHAR_T noprint; /* Cached, unprintable character. */ + int noprint; /* Cached, unprintable character. */ char *c_option; /* Ex initial, command-line command. */ @@ -89,16 +89,16 @@ struct _gs { FILE *tracefp; /* Trace file pointer. */ #endif -#define MAX_BIT_SEQ 128 /* Max + 1 fast check character. */ +#define MAX_BIT_SEQ 0x7f /* Max + 1 fast check character. */ LIST_HEAD(_seqh, _seq) seqq; /* Linked list of maps, abbrevs. */ - bitstr_t bit_decl(seqb, MAX_BIT_SEQ); + bitstr_t bit_decl(seqb, MAX_BIT_SEQ + 1); -#define MAX_FAST_KEY 254 /* Max fast check character.*/ +#define MAX_FAST_KEY 0xff /* Max fast check character.*/ #define KEY_LEN(sp, ch) \ - ((UCHAR_T)(ch) <= MAX_FAST_KEY ? \ + (((ch) & ~MAX_FAST_KEY) == 0 ? \ sp->gp->cname[(unsigned char)ch].len : v_key_len(sp, ch)) #define KEY_NAME(sp, ch) \ - ((UCHAR_T)(ch) <= MAX_FAST_KEY ? \ + (((ch) & ~MAX_FAST_KEY) == 0 ? \ sp->gp->cname[(unsigned char)ch].name : v_key_name(sp, ch)) struct { u_char name[MAX_CHARACTER_COLUMNS + 1]; @@ -106,12 +106,9 @@ struct _gs { } cname[MAX_FAST_KEY + 1]; /* Fast lookup table. */ #define KEY_VAL(sp, ch) \ - ((UCHAR_T)(ch) <= MAX_FAST_KEY ? \ - sp->gp->special_key[(UCHAR_T)ch] : \ - (UCHAR_T)(ch) > (UCHAR_T)sp->gp->max_special ? \ - K_NOTUSED : v_key_val(sp,ch)) - CHAR_T max_special; /* Max special character. */ - u_char /* Fast lookup table. */ + (((ch) & ~MAX_FAST_KEY) == 0 ? \ + sp->gp->special_key[(unsigned char)ch] : v_key_val(sp,ch)) + e_key_t /* Fast lookup table. */ special_key[MAX_FAST_KEY + 1]; /* Flags. */ diff --git a/dist/nvi/common/key.c b/dist/nvi/common/key.c index ce72374beba9..249ea1126ded 100644 --- a/dist/nvi/common/key.c +++ b/dist/nvi/common/key.c @@ -1,4 +1,4 @@ -/* $NetBSD: key.c,v 1.5 2009/01/18 03:45:50 lukem Exp $ */ +/* $NetBSD: key.c,v 1.6 2011/03/21 14:53:02 tnozaki Exp $ */ /*- * Copyright (c) 1991, 1993, 1994 @@ -138,16 +138,12 @@ v_key_init(SCR *sp) qsort(keylist, nkeylist, sizeof(keylist[0]), v_key_cmp); /* Initialize the fast lookup table. */ - for (gp->max_special = 0, kp = keylist, cnt = nkeylist; cnt--; ++kp) { - if (gp->max_special < kp->ch) - gp->max_special = kp->ch; - if (kp->ch <= MAX_FAST_KEY) - gp->special_key[kp->ch] = kp->value; - } + for (kp = keylist, cnt = nkeylist; cnt--; ++kp) + gp->special_key[kp->ch] = kp->value; /* Find a non-printable character to use as a message separator. */ - for (ch = 1; (unsigned)ch <= MAX_CHAR_T; ++ch) - if (!ISPRINT(ch)) { + for (ch = 1; ch <= UCHAR_MAX; ++ch) + if (!isprint(ch)) { gp->noprint = ch; break; } @@ -243,12 +239,13 @@ v_key_name(SCR *sp, ARG_CHAR_T ach) { static const char hexdigit[] = "0123456789abcdef"; static const char octdigit[] = "01234567"; - CHAR_T ch, mask; - size_t len; - int cnt, shift; + int ch; + size_t len, i; const char *chp; - ch = ach; + if (INTISWIDE(ach)) + goto vis; + ch = (unsigned char)ach; /* See if the character was explicitly declared printable or not. */ if ((chp = O_STR(sp, O_PRINT)) != NULL) @@ -279,38 +276,33 @@ v_key_name(SCR *sp, ARG_CHAR_T ach) * NB: There's an assumption here that all printable characters take * up a single column on the screen. This is not always correct. */ - if (ISPRINT(ch)) { + if (isprint(ch)) { pr: sp->cname[0] = ch; len = 1; goto done; } -nopr: if (ISCNTRL(ch) && (ch < 0x20 || ch == 0x7f)) { +nopr: if (iscntrl(ch) && (ch < 0x20 || ch == 0x7f)) { sp->cname[0] = '^'; sp->cname[1] = ch == 0x7f ? '?' : '@' + ch; len = 2; - } else if (O_ISSET(sp, O_OCTAL)) { -#define BITS (sizeof(CHAR_T) * 8) -#define SHIFT (BITS - BITS % 3) -#define TOPMASK (BITS % 3 == 2 ? 3 : 1) << (BITS - BITS % 3) + goto done; + } +vis: for (i = 1; i <= sizeof(CHAR_T); ++i) + if ((ach >> i * CHAR_BIT) == 0) + break; + ch = (ach >> --i * CHAR_BIT) & UCHAR_MAX; + if (O_ISSET(sp, O_OCTAL)) { sp->cname[0] = '\\'; - sp->cname[1] = octdigit[(ch & TOPMASK) >> SHIFT]; - shift = SHIFT - 3; - for (len = 2, mask = 7 << (SHIFT - 3), - cnt = BITS / 3; cnt-- > 0; mask >>= 3, shift -= 3) - sp->cname[len++] = octdigit[(ch & mask) >> shift]; + sp->cname[1] = octdigit[(ch & 0300) >> 6]; + sp->cname[2] = octdigit[(ch & 070) >> 3]; + sp->cname[3] = octdigit[ ch & 07 ]; } else { sp->cname[0] = '\\'; sp->cname[1] = 'x'; - for (len = 2, chp = (char *)&ch, - /* sizeof(CHAR_T) conflict with MAX_CHARACTER_COLUMNS - * and code depends on big endian - * and might not be needed in the long run - */ - cnt = /*sizeof(CHAR_T)*/1; cnt-- > 0; ++chp) { - sp->cname[len++] = hexdigit[(*chp & 0xf0) >> 4]; - sp->cname[len++] = hexdigit[*chp & 0x0f]; - } + sp->cname[2] = hexdigit[(ch & 0xf0) >> 4]; + sp->cname[3] = hexdigit[ ch & 0x0f ]; } + len = 4; done: sp->cname[sp->clen = len] = '\0'; return (sp->cname); } @@ -322,7 +314,7 @@ done: sp->cname[sp->clen = len] = '\0'; * * PUBLIC: int v_key_val __P((SCR *, ARG_CHAR_T)); */ -int +e_key_t v_key_val(SCR *sp, ARG_CHAR_T ch) { KEYLIST k, *kp; @@ -628,8 +620,8 @@ newmap: evp = &wp->i_event[wp->i_next]; */ if (istimeout || FL_ISSET(evp->e_flags, CH_NOMAP) || !LF_ISSET(EC_MAPCOMMAND | EC_MAPINPUT) || - ((UCHAR_T)evp->e_c < MAX_BIT_SEQ && - !bit_test(gp->seqb, (UCHAR_T)evp->e_c))) + ((evp->e_c & ~MAX_BIT_SEQ) == 0 && + !bit_test(gp->seqb, evp->e_c))) goto nomap; /* Search the map. */ diff --git a/dist/nvi/common/key.h b/dist/nvi/common/key.h index 1707e397cc67..ebc255a09f35 100644 --- a/dist/nvi/common/key.h +++ b/dist/nvi/common/key.h @@ -1,4 +1,4 @@ -/* $NetBSD: key.h,v 1.1.1.2 2008/05/18 14:29:46 aymeric Exp $ */ +/* $NetBSD: key.h,v 1.2 2011/03/21 14:53:02 tnozaki Exp $ */ /*- * Copyright (c) 1991, 1993, 1994 @@ -13,20 +13,6 @@ #include "multibyte.h" -/* - * Fundamental character types. - * - * CHAR_T An integral type that can hold any character. - * ARG_CHAR_T The type of a CHAR_T when passed as an argument using - * traditional promotion rules. It should also be able - * to be compared against any CHAR_T for equality without - * problems. - * MAX_CHAR_T The maximum value of any character. - * - * If no integral type can hold a character, don't even try the port. - */ -typedef u_int ARG_CHAR_T; - #ifdef USE_WIDECHAR #define FILE2INT5(sp,buf,n,nlen,w,wlen) \ sp->conv.file2int(sp, n, nlen, &buf, &wlen, &w) @@ -41,23 +27,8 @@ typedef u_int ARG_CHAR_T; #define INPUT2INT5(sp,cw,n,nlen,w,wlen) \ sp->conv.input2int(sp, n, nlen, &(cw), &wlen, &w) #define CONST -#define ISCNTRL(ch) \ - iswcntrl((ch)) -#define ISDIGIT(ch) \ - iswdigit((ch)) -#define ISPRINT(ch) \ - iswprint((ch)) -#define ISBLANK(ch) \ - iswblank((ch)) -#define ISALPHA(ch) \ - iswalpha((ch)) -#define ISALNUM(ch) \ - iswalnum((ch)) #define CHAR_WIDTH(sp, ch) wcwidth(ch) #define INTISWIDE(c) (!!(c >> 8)) /* XXX wrong name */ -#define WS "%ls" -#define WVS "%*ls" -#define WC "%lc" #else #define FILE2INT5(sp,buf,n,nlen,w,wlen) \ (w = n, wlen = nlen, 0) @@ -72,23 +43,8 @@ typedef u_int ARG_CHAR_T; #define INPUT2INT5(sp,buf,n,nlen,w,wlen) \ (w = n, wlen = nlen, 0) #define CONST const -#define ISCNTRL(ch) \ - iscntrl((ch)) -#define ISDIGIT(ch) \ - isdigit((ch)) -#define ISPRINT(ch) \ - isprint((ch)) -#define ISBLANK(ch) \ - isblank((ch)) -#define ISALPHA(ch) \ - isalpha((ch)) -#define ISALNUM(ch) \ - isalnum((ch)) #define INTISWIDE(c) 0 #define CHAR_WIDTH(sp, ch) 1 -#define WS "%s" -#define WVS "%*s" -#define WC "%c" #endif #define FILE2INT(sp,n,nlen,w,wlen) \ FILE2INT5(sp,sp->wp->cw,n,nlen,w,wlen) @@ -163,7 +119,7 @@ struct _event { #define CH_MAPPED 0x02 /* Character is from a map. */ #define CH_NOMAP 0x04 /* Do not map the character. */ #define CH_QUOTED 0x08 /* Character is already quoted. */ - CHAR_T e_c; /* Character. */ + ARG_CHAR_T e_c; /* Character. */ e_key_t e_value; /* Key type. */ #define e_flags e_val1 /* Flags. */ @@ -188,7 +144,7 @@ struct _event { typedef struct _keylist { e_key_t value; /* Special value. */ - CHAR_T ch; /* Key. */ + int ch; /* Key. */ } KEYLIST; extern KEYLIST keylist[]; @@ -198,19 +154,6 @@ extern KEYLIST keylist[]; (KEYS_WAITING(sp) && \ FL_ISSET((sp)->wp->i_event[(sp)->wp->i_next].e_flags, CH_MAPPED)) -/* - * Ex/vi commands are generally separated by whitespace characters. We - * can't use the standard isspace(3) macro because it returns true for - * characters like ^K in the ASCII character set. The 4.4BSD isblank(3) - * macro does exactly what we want, but it's not portable yet. - * - * XXX - * Note side effect, ch is evaluated multiple times. - */ -#ifndef isblank -#define isblank(ch) ((ch) == ' ' || (ch) == '\t') -#endif - /* The "standard" tab width, for displaying things to users. */ #define STANDARD_TAB 6 diff --git a/dist/nvi/common/msg.c b/dist/nvi/common/msg.c index ce1d765a49bc..e1a7d58d22e1 100644 --- a/dist/nvi/common/msg.c +++ b/dist/nvi/common/msg.c @@ -1,4 +1,4 @@ -/* $NetBSD: msg.c,v 1.3 2009/01/18 03:45:50 lukem Exp $ */ +/* $NetBSD: msg.c,v 1.4 2011/03/21 14:53:02 tnozaki Exp $ */ /*- * Copyright (c) 1991, 1993, 1994 @@ -76,7 +76,7 @@ msgq(sp, mt, fmt, va_alist) char *bp, *mp; va_list ap; #ifndef NL_ARGMAX - CHAR_T ch; + int ch; char *rbp, *s_rbp; const char *t, *u; size_t cnt1, cnt2, soff; @@ -214,12 +214,12 @@ retry: FREE_SPACE(sp, bp, blen); if (*p == '\0') break; ++p; - if (!isdigit(*p)) { + if (!isdigit((unsigned char)*p)) { if (*p == '%') ++p; continue; } - for (u = p; *++p != '\0' && isdigit(*p);); + for (u = p; *++p != '\0' && isdigit((unsigned char)*p);); if (*p != '$') continue; @@ -234,7 +234,7 @@ retry: FREE_SPACE(sp, bp, blen); goto ret; /* Up to, and including the conversion character. */ - for (u = p; (ch = *++p) != '\0';) + for (u = p; (ch = (unsigned char)*++p) != '\0';) if (isalpha(ch) && strchr("diouxXfeEgGcspn", ch) != NULL) break; diff --git a/dist/nvi/common/multibyte.h b/dist/nvi/common/multibyte.h index 7168a3bdea9d..b6618395f956 100644 --- a/dist/nvi/common/multibyte.h +++ b/dist/nvi/common/multibyte.h @@ -1,20 +1,45 @@ -/* $NetBSD: multibyte.h,v 1.5 2009/12/23 12:44:21 mlelstv Exp $ */ +/* $NetBSD: multibyte.h,v 1.6 2011/03/21 14:53:02 tnozaki Exp $ */ #ifndef MULTIBYTE_H #define MULTIBYTE_H +/* + * Ex/vi commands are generally separated by whitespace characters. We + * can't use the standard isspace(3) macro because it returns true for + * characters like ^K in the ASCII character set. The 4.4BSD isblank(3) + * macro does exactly what we want, but it's not portable yet. + * + * XXX + * Note side effect, ch is evaluated multiple times. + */ +#define ISBLANK(c) ((c) == ' ' || (c) == '\t') + +#define ISDIGIT(c) ((c) >= '0' && (c) <= '9') +#define ISXDIGIT(c) (ISDIGIT(c) || \ + ((c) >= 'A' && (c) <= 'F') || ((c) >= 'a' && (c) <= 'f')) +#define ISALPHA(c) (((c) >= 'A' && (c) <= 'Z') || ((c) >= 'a' && (c) <= 'z')) +#define ISALNUM(c) (ISALPHA(c) || ISDIGIT(c)) + +/* + * Fundamental character types. + * + * CHAR_T An integral type that can hold any character. + * ARG_CHAR_T The type of a CHAR_T when passed as an argument using + * traditional promotion rules. It should also be able + * to be compared against any CHAR_T for equality without + * problems. + * + * If no integral type can hold a character, don't even try the port. + */ + #ifdef USE_WIDECHAR #include #include typedef wchar_t RCHAR_T; typedef wchar_t CHAR_T; -#if defined(__NetBSD__) -#define MAX_CHAR_T 0xffffffff -#else -#define MAX_CHAR_T WCHAR_MAX -#endif -typedef u_int UCHAR_T; +typedef wint_t ARG_CHAR_T; +typedef wint_t UCHAR_T; #define STRLEN wcslen #define STRTOL wcstol @@ -22,20 +47,28 @@ typedef u_int UCHAR_T; #define SPRINTF swprintf #define STRCMP wcscmp #define STRPBRK wcspbrk -#define TOUPPER towupper -#define TOLOWER towlower -#define ISUPPER iswupper +#define ISBLANK2 iswblank +#define ISCNTRL iswcntrl +#define ISGRAPH iswgraph #define ISLOWER iswlower +#define ISPUNCT iswpunct +#define ISSPACE iswspace +#define ISUPPER iswupper +#define TOLOWER towlower +#define TOUPPER towupper #define STRSET wmemset #define STRCHR wcschr #define L(ch) L ## ch +#define WS "%ls" +#define WVS "%*ls" +#define WC "%lc" #else typedef char RCHAR_T; -typedef u_char CHAR_T; -#define MAX_CHAR_T 0xff -typedef u_char UCHAR_T; +typedef char CHAR_T; +typedef int ARG_CHAR_T; +typedef unsigned char UCHAR_T; #define STRLEN strlen #define STRTOL strtol @@ -43,14 +76,22 @@ typedef u_char UCHAR_T; #define SPRINTF snprintf #define STRCMP strcmp #define STRPBRK strpbrk -#define TOUPPER toupper -#define TOLOWER tolower -#define ISUPPER isupper +#define ISBLANK2 isblank +#define ISCNTRL iscntrl +#define ISGRAPH isgraph #define ISLOWER islower +#define ISPUNCT ispunct +#define ISSPACE isspace +#define ISUPPER isupper +#define TOLOWER tolower +#define TOUPPER toupper #define STRSET memset #define STRCHR strchr #define L(ch) ch +#define WS "%s" +#define WVS "%*s" +#define WC "%c" #endif diff --git a/dist/nvi/common/options.c b/dist/nvi/common/options.c index 2c1ff9bedc06..90d252b7dbf6 100644 --- a/dist/nvi/common/options.c +++ b/dist/nvi/common/options.c @@ -1,4 +1,4 @@ -/* $NetBSD: options.c,v 1.9 2010/11/14 20:53:54 schnoebe Exp $ */ +/* $NetBSD: options.c,v 1.10 2011/03/21 14:53:02 tnozaki Exp $ */ /*- * Copyright (c) 1991, 1993, 1994 @@ -639,7 +639,7 @@ opts_set(SCR *sp, ARGS **argv, const char *usage) break; } - if (!ISDIGIT(sep[0])) + if (!ISDIGIT((UCHAR_T)sep[0])) goto badnum; if ((nret = nget_uslong(sp, &value, sep, &endp, 10)) != NUM_OK) { diff --git a/dist/nvi/common/seq.c b/dist/nvi/common/seq.c index 92de13030a60..4361ba23530b 100644 --- a/dist/nvi/common/seq.c +++ b/dist/nvi/common/seq.c @@ -1,4 +1,4 @@ -/* $NetBSD: seq.c,v 1.2 2008/12/05 22:51:42 christos Exp $ */ +/* $NetBSD: seq.c,v 1.3 2011/03/21 14:53:02 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -118,7 +118,7 @@ mem1: errno = sv_errno; } /* Set the fast lookup bit. */ - if ((UCHAR_T)qp->input[0] < MAX_BIT_SEQ) + if ((qp->input[0] & ~MAX_BIT_SEQ) == 0) bit_set(sp->gp->seqb, qp->input[0]); return (0); @@ -319,7 +319,7 @@ seq_save(SCR *sp, FILE *fp, const char *prefix, seq_t stype) CHAR_T *p; SEQ *qp; size_t olen; - int ch; + ARG_CHAR_T ch; /* Write a sequence command for all keys the user defined. */ for (qp = sp->gp->seqq.lh_first; qp != NULL; qp = qp->q.le_next) { @@ -328,21 +328,21 @@ seq_save(SCR *sp, FILE *fp, const char *prefix, seq_t stype) if (prefix) (void)fprintf(fp, "%s", prefix); for (p = qp->input, olen = qp->ilen; olen > 0; --olen) { - ch = *p++; + ch = (UCHAR_T)*p++; if (ch == CH_LITERAL || ch == '|' || - isblank(ch) || KEY_VAL(sp, ch) == K_NL) + ISBLANK(ch) || KEY_VAL(sp, ch) == K_NL) (void)putc(CH_LITERAL, fp); - (void)putc(ch, fp); + (void)fprintf(fp, WC, ch); } (void)putc(' ', fp); if (qp->output != NULL) for (p = qp->output, olen = qp->olen; olen > 0; --olen) { - ch = *p++; + ch = (UCHAR_T)*p++; if (ch == CH_LITERAL || ch == '|' || KEY_VAL(sp, ch) == K_NL) (void)putc(CH_LITERAL, fp); - (void)putc(ch, fp); + (void)fprintf(fp, WC, ch); } (void)putc('\n', fp); } diff --git a/dist/nvi/common/util.c b/dist/nvi/common/util.c index cbbba6bcbb2f..6fc793fd246d 100644 --- a/dist/nvi/common/util.c +++ b/dist/nvi/common/util.c @@ -1,4 +1,4 @@ -/* $NetBSD: util.c,v 1.3 2008/12/05 22:51:42 christos Exp $ */ +/* $NetBSD: util.c,v 1.4 2011/03/21 14:53:02 tnozaki Exp $ */ /*- * Copyright (c) 1991, 1993, 1994 @@ -94,7 +94,7 @@ nonblank(SCR *sp, db_recno_t lno, size_t *cnop) return (0); for (cnt = off, p = &p[off], - len -= off; len && isblank(*p); ++cnt, ++p, --len); + len -= off; len && ISBLANK((UCHAR_T)*p); ++cnt, ++p, --len); /* Set the return. */ *cnop = len ? cnt : cnt - 1; diff --git a/dist/nvi/ex/ex.c b/dist/nvi/ex/ex.c index 8deb9e9f77c1..49da3257f3fc 100644 --- a/dist/nvi/ex/ex.c +++ b/dist/nvi/ex/ex.c @@ -1,4 +1,4 @@ -/* $NetBSD: ex.c,v 1.6 2009/12/23 12:44:22 mlelstv Exp $ */ +/* $NetBSD: ex.c,v 1.7 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -212,7 +212,7 @@ ex_cmd(SCR *sp) int cnt, delim, isaddr, namelen; int newscreen, notempty, tmp, vi_address; CHAR_T *arg1, *s, *p, *t; - CHAR_T ch; + ARG_CHAR_T ch; const CHAR_T *n; const char *np; @@ -265,7 +265,7 @@ loop: ecp = wp->ecq.lh_first; /* Skip s, empty lines. */ for (notempty = 0; ecp->clen > 0; ++ecp->cp, --ecp->clen) - if ((ch = *ecp->cp) == '\n') { + if ((ch = (UCHAR_T)*ecp->cp) == '\n') { ++wp->if_lno; ++ecp->if_lno; } else if (ISBLANK(ch)) @@ -282,7 +282,7 @@ loop: ecp = wp->ecq.lh_first; */ if (ecp->clen != 0 && ch == ':') { notempty = 1; - while (--ecp->clen > 0 && (ch = *++ecp->cp) == ':'); + while (--ecp->clen > 0 && (ch = (UCHAR_T)*++ecp->cp) == ':'); } /* @@ -306,7 +306,7 @@ loop: ecp = wp->ecq.lh_first; /* Skip whitespace. */ for (; ecp->clen > 0; ++ecp->cp, --ecp->clen) { - ch = *ecp->cp; + ch = (UCHAR_T)*ecp->cp; if (!ISBLANK(ch)) break; } @@ -361,7 +361,7 @@ loop: ecp = wp->ecq.lh_first; * worked, historically). */ for (; ecp->clen > 0; ++ecp->cp, --ecp->clen) { - ch = *ecp->cp; + ch = (UCHAR_T)*ecp->cp; if (!ISBLANK(ch) && ch != ':') break; } @@ -397,7 +397,7 @@ loop: ecp = wp->ecq.lh_first; } else { for (p = ecp->cp; ecp->clen > 0; --ecp->clen, ++ecp->cp) - if (!ISALPHA(*ecp->cp)) + if (!ISALPHA((UCHAR_T)*ecp->cp)) break; if ((namelen = ecp->cp - p) == 0) { msgq(sp, M_ERR, "080|Unknown command name"); @@ -486,7 +486,7 @@ loop: ecp = wp->ecq.lh_first; /* FALLTHROUGH */ default: unknown: if (newscreen) - p[0] = TOUPPER(p[0]); + p[0] = TOUPPER((UCHAR_T)p[0]); ex_unknown(sp, p, namelen); goto err; } @@ -530,7 +530,7 @@ skip_srch: if (ecp->cmd == &cmds[C_VISUAL_EX] && F_ISSET(sp, SC_VI)) */ if ((ecp->cmd == &cmds[C_SHIFTL] && *p == '<') || (ecp->cmd == &cmds[C_SHIFTR] && *p == '>')) { - for (ch = *p; + for (ch = (UCHAR_T)*p; ecp->clen > 0; --ecp->clen, ++ecp->cp) if (*ecp->cp != ch) break; @@ -670,12 +670,12 @@ skip_srch: if (ecp->cmd == &cmds[C_VISUAL_EX] && F_ISSET(sp, SC_VI)) --ecp->clen; for (arg1 = p = ecp->cp; ecp->clen > 0; --ecp->clen, ++ecp->cp) { - ch = *ecp->cp; + ch = (UCHAR_T)*ecp->cp; if (IS_ESCAPE(sp, ecp, ch) && ecp->clen > 1) { ++discard; --ecp->clen; - ch = *++ecp->cp; + ch = (UCHAR_T)*++ecp->cp; } else if (ISBLANK(ch)) break; *p++ = ch; @@ -697,11 +697,11 @@ skip_srch: if (ecp->cmd == &cmds[C_VISUAL_EX] && F_ISSET(sp, SC_VI)) * are stripped as no longer useful. */ for (p = ecp->cp; ecp->clen > 0; --ecp->clen, ++ecp->cp) { - ch = *ecp->cp; + ch = (UCHAR_T)*ecp->cp; if (ch == '\\' && ecp->clen > 1 && ecp->cp[1] == '\n') { ++discard; --ecp->clen; - ch = *++ecp->cp; + ch = (UCHAR_T)*++ecp->cp; ++wp->if_lno; ++ecp->if_lno; @@ -719,7 +719,7 @@ skip_srch: if (ecp->cmd == &cmds[C_VISUAL_EX] && F_ISSET(sp, SC_VI)) * . Otherwise, we're done. */ for (tmp = 0; ecp->clen > 0; --ecp->clen, ++ecp->cp) { - ch = *ecp->cp; + ch = (UCHAR_T)*ecp->cp; if (ISBLANK(ch)) tmp = 1; else @@ -741,7 +741,7 @@ skip_srch: if (ecp->cmd == &cmds[C_VISUAL_EX] && F_ISSET(sp, SC_VI)) if (!ISBLANK(ecp->cp[0])) break; - if (ISALNUM(ecp->cp[0]) || ecp->cp[0] == '|') { + if (ISALNUM((UCHAR_T)ecp->cp[0]) || ecp->cp[0] == '|') { ecp->rcmd = cmds[C_SUBSTITUTE]; ecp->rcmd.fn = ex_subagain; ecp->cmd = &ecp->rcmd; @@ -783,9 +783,9 @@ skip_srch: if (ecp->cmd == &cmds[C_VISUAL_EX] && F_ISSET(sp, SC_VI)) */ vi_address = ecp->clen != 0 && ecp->cp[0] != '\n'; for (p = ecp->cp; ecp->clen > 0; --ecp->clen, ++ecp->cp) { - ch = ecp->cp[0]; + ch = (UCHAR_T)ecp->cp[0]; if (IS_ESCAPE(sp, ecp, ch) && ecp->clen > 1) { - CHAR_T tmp1 = ecp->cp[1]; + ARG_CHAR_T tmp1 = (UCHAR_T)ecp->cp[1]; if (tmp1 == '\n' || tmp1 == '|') { if (tmp1 == '\n') { ++wp->if_lno; @@ -1050,7 +1050,7 @@ end_case23: break; * command "d2" would be a delete into buffer '2', and * not a two-line deletion. */ - if (!ISDIGIT(ecp->cp[0])) { + if (!ISDIGIT((UCHAR_T)ecp->cp[0])) { ecp->buffer = *ecp->cp; ++ecp->cp; --ecp->clen; @@ -1060,7 +1060,7 @@ end_case23: break; case 'c': /* count [01+a] */ ++np; /* Validate any signed value. */ - if (!ISDIGIT(*ecp->cp) && (*np != '+' || + if (!ISDIGIT((UCHAR_T)*ecp->cp) && (*np != '+' || (*ecp->cp != '+' && *ecp->cp != '-'))) break; /* If a signed value, set appropriate flags. */ @@ -1154,7 +1154,7 @@ end_case23: break; */ for (p = t = ecp->cp; ecp->clen > 0; --ecp->clen, ++ecp->cp) { - ch = *ecp->cp; + ch = (UCHAR_T)*ecp->cp; if (IS_ESCAPE(sp, ecp, ch) && ecp->clen > 1) { --ecp->clen; @@ -1172,7 +1172,7 @@ end_case23: break; /* Delete intervening whitespace. */ for (; ecp->clen > 0; --ecp->clen, ++ecp->cp) { - ch = *ecp->cp; + ch = (UCHAR_T)*ecp->cp; if (!ISBLANK(ch)) break; } @@ -1182,7 +1182,7 @@ end_case23: break; /* Followed by the string. */ for (p = t = ecp->cp; ecp->clen > 0; --ecp->clen, ++ecp->cp, ++p) { - ch = *ecp->cp; + ch = (UCHAR_T)*ecp->cp; if (IS_ESCAPE(sp, ecp, ch) && ecp->clen > 1) { --ecp->clen; @@ -1222,7 +1222,7 @@ arg_cnt_chk: if (*++np != 'N') { /* N */ /* Skip trailing whitespace. */ for (; ecp->clen > 0; --ecp->clen) { - ch = *ecp->cp++; + ch = (UCHAR_T)*ecp->cp++; if (!ISBLANK(ch)) break; } @@ -1586,7 +1586,7 @@ err: /* */ if (ecp->save_cmdlen == 0) for (; ecp->clen; --ecp->clen) { - ch = *ecp->cp++; + ch = (UCHAR_T)*ecp->cp++; if (IS_ESCAPE(sp, ecp, ch) && ecp->clen > 1) { --ecp->clen; ++ecp->cp; @@ -1842,7 +1842,7 @@ ex_line(SCR *sp, EXCMD *ecp, MARK *mp, int *isaddrp, int *errp) F_CLR(ecp, E_DELTA); /* No addresses permitted until a file has been read in. */ - if (sp->ep == NULL && strchr("$0123456789'\\/?.+-^", *ecp->cp)) { + if (sp->ep == NULL && STRCHR(L"$0123456789'\\/?.+-^", *ecp->cp)) { ex_badaddr(sp, NULL, A_EMPTY, NUM_OK); *errp = 1; return (0); @@ -1953,7 +1953,7 @@ search: mp->lno = sp->lno; * the '+' could be omitted. (This feature is found in ed * as well.) */ - if (ecp->clen > 1 && ISDIGIT(ecp->cp[1])) + if (ecp->clen > 1 && ISDIGIT((UCHAR_T)ecp->cp[1])) *ecp->cp = '+'; else { ++ecp->cp; @@ -1964,14 +1964,14 @@ search: mp->lno = sp->lno; /* Skip trailing s. */ for (; ecp->clen > 0 && - ISBLANK(ecp->cp[0]); ++ecp->cp, --ecp->clen); + ISBLANK((UCHAR_T)ecp->cp[0]); ++ecp->cp, --ecp->clen); /* * Evaluate any offset. If no address yet found, the offset * is relative to ".". */ total = 0; - if (ecp->clen != 0 && (ISDIGIT(ecp->cp[0]) || + if (ecp->clen != 0 && (ISDIGIT((UCHAR_T)ecp->cp[0]) || ecp->cp[0] == '+' || ecp->cp[0] == '-' || ecp->cp[0] == '^')) { if (!*isaddrp) { @@ -2007,14 +2007,14 @@ search: mp->lno = sp->lno; */ F_SET(ecp, E_DELTA); for (;;) { - for (; ecp->clen > 0 && ISBLANK(ecp->cp[0]); + for (; ecp->clen > 0 && ISBLANK((UCHAR_T)ecp->cp[0]); ++ecp->cp, --ecp->clen); - if (ecp->clen == 0 || (!ISDIGIT(ecp->cp[0]) && + if (ecp->clen == 0 || (!ISDIGIT((UCHAR_T)ecp->cp[0]) && ecp->cp[0] != '+' && ecp->cp[0] != '-' && ecp->cp[0] != '^')) break; - if (!ISDIGIT(ecp->cp[0]) && - !ISDIGIT(ecp->cp[1])) { + if (!ISDIGIT((UCHAR_T)ecp->cp[0]) && + !ISDIGIT((UCHAR_T)ecp->cp[1])) { total += ecp->cp[0] == '+' ? 1 : -1; --ecp->clen; ++ecp->cp; diff --git a/dist/nvi/ex/ex_abbrev.c b/dist/nvi/ex/ex_abbrev.c index 9ba49db00670..0fe90ef12fd0 100644 --- a/dist/nvi/ex/ex_abbrev.c +++ b/dist/nvi/ex/ex_abbrev.c @@ -1,4 +1,4 @@ -/* $NetBSD: ex_abbrev.c,v 1.1.1.2 2008/05/18 14:31:09 aymeric Exp $ */ +/* $NetBSD: ex_abbrev.c,v 1.2 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -71,7 +71,7 @@ ex_abbr(SCR *sp, EXCMD *cmdp) return (1); } for (p = cmdp->argv[0]->bp; *p != '\0'; ++p) - if (ISBLANK(p[0])) { + if (ISBLANK((UCHAR_T)p[0])) { msgq(sp, M_ERR, "107|Abbreviations may not contain tabs or spaces"); return (1); diff --git a/dist/nvi/ex/ex_argv.c b/dist/nvi/ex/ex_argv.c index 38361f0d7d25..344a142b7730 100644 --- a/dist/nvi/ex/ex_argv.c +++ b/dist/nvi/ex/ex_argv.c @@ -1,4 +1,4 @@ -/* $NetBSD: ex_argv.c,v 1.3 2009/01/13 15:43:27 christos Exp $ */ +/* $NetBSD: ex_argv.c,v 1.4 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1993, 1994 @@ -105,7 +105,7 @@ argv_exp1(SCR *sp, EXCMD *excp, const CHAR_T *cmd, size_t cmdlen, int is_bang) /* If it's empty, we're done. */ if (len != 0) { for (p = bp, t = bp + len; p < t; ++p) - if (!isblank(*p)) + if (!ISBLANK((UCHAR_T)*p)) break; if (p == t) goto ret; @@ -252,15 +252,16 @@ argv_exp3(SCR *sp, EXCMD *excp, const CHAR_T *cmd, size_t cmdlen) { EX_PRIVATE *exp; size_t len; - int ch, off; + ARG_CHAR_T ch; + int off; const CHAR_T *ap; CHAR_T *p; for (exp = EXP(sp); cmdlen > 0; ++exp->argsoff) { /* Skip any leading whitespace. */ for (; cmdlen > 0; --cmdlen, ++cmd) { - ch = *cmd; - if (!isblank(ch)) + ch = (UCHAR_T)*cmd; + if (!ISBLANK(ch)) break; } if (cmdlen == 0) @@ -276,11 +277,11 @@ argv_exp3(SCR *sp, EXCMD *excp, const CHAR_T *cmd, size_t cmdlen) * character. */ for (ap = cmd, len = 0; cmdlen > 0; ++cmd, --cmdlen, ++len) { - ch = *cmd; + ch = (UCHAR_T)*cmd; if (IS_ESCAPE(sp, excp, ch) && cmdlen > 1) { ++cmd; --cmdlen; - } else if (isblank(ch)) + } else if (ISBLANK(ch)) break; } @@ -745,7 +746,7 @@ alloc_err: rval = SEXP_ERR; rval = SEXP_EXPANSION_ERR; for (p = bp; len; ++p, --len) - if (!isblank(*p)) + if (!ISBLANK((UCHAR_T)*p)) break; if (len == 0) rval = SEXP_EXPANSION_ERR; diff --git a/dist/nvi/ex/ex_cscope.c b/dist/nvi/ex/ex_cscope.c index 0b2f34545718..87b069a3114a 100644 --- a/dist/nvi/ex/ex_cscope.c +++ b/dist/nvi/ex/ex_cscope.c @@ -1,4 +1,4 @@ -/* $NetBSD: ex_cscope.c,v 1.6 2010/05/13 17:52:11 tnozaki Exp $ */ +/* $NetBSD: ex_cscope.c,v 1.7 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1994, 1996 @@ -128,18 +128,18 @@ ex_cscope(SCR *sp, EXCMD *cmdp) /* Skip leading whitespace. */ for (p = cmdp->argv[0]->bp, i = cmdp->argv[0]->len; i > 0; --i, ++p) - if (!isspace(*p)) + if (!ISBLANK((UCHAR_T)*p)) break; if (i == 0) goto usage; /* Skip the command to any arguments. */ for (cmd = p; i > 0; --i, ++p) - if (isspace(*p)) + if (ISBLANK((UCHAR_T)*p)) break; if (*p != '\0') { *p++ = '\0'; - for (; *p && isspace(*p); ++p); + for (; *p && ISBLANK((UCHAR_T)*p); ++p); } INT2CHAR(sp, cmd, STRLEN(cmd) + 1, np, nlen); diff --git a/dist/nvi/ex/ex_display.c b/dist/nvi/ex/ex_display.c index 8542ac8726d7..1ef1c6e40e6f 100644 --- a/dist/nvi/ex/ex_display.c +++ b/dist/nvi/ex/ex_display.c @@ -1,4 +1,4 @@ -/* $NetBSD: ex_display.c,v 1.2 2008/12/05 22:51:42 christos Exp $ */ +/* $NetBSD: ex_display.c,v 1.3 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -91,7 +91,7 @@ bdisplay(SCR *sp) /* Display regular cut buffers. */ for (cbp = sp->wp->cutq.lh_first; cbp != NULL; cbp = cbp->q.le_next) { - if (isdigit(cbp->name)) + if (ISDIGIT(cbp->name)) continue; if (cbp->textq.cqh_first != (void *)&cbp->textq) db(sp, cbp, NULL); @@ -100,7 +100,7 @@ bdisplay(SCR *sp) } /* Display numbered buffers. */ for (cbp = sp->wp->cutq.lh_first; cbp != NULL; cbp = cbp->q.le_next) { - if (!isdigit(cbp->name)) + if (!ISDIGIT(cbp->name)) continue; if (cbp->textq.cqh_first != (void *)&cbp->textq) db(sp, cbp, NULL); diff --git a/dist/nvi/ex/ex_global.c b/dist/nvi/ex/ex_global.c index 2f03ffda80dd..ff6ae52202e1 100644 --- a/dist/nvi/ex/ex_global.c +++ b/dist/nvi/ex/ex_global.c @@ -1,4 +1,4 @@ -/* $NetBSD: ex_global.c,v 1.3 2009/11/14 23:31:37 christos Exp $ */ +/* $NetBSD: ex_global.c,v 1.4 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -92,7 +92,7 @@ ex_g_setup(SCR *sp, EXCMD *cmdp, enum which cmd) if (cmdp->argc == 0) goto usage; for (p = cmdp->argv[0]->bp; ISBLANK(*p); ++p); - if (*p == '\0' || ISALNUM(*p) || + if (*p == '\0' || ISALNUM((UCHAR_T)*p) || *p == '\\' || *p == '|' || *p == '\n') { usage: ex_emsg(sp, cmdp->cmd->usage, EXM_USAGE); return (1); diff --git a/dist/nvi/ex/ex_join.c b/dist/nvi/ex/ex_join.c index 60baf2965699..bdaedbe1d549 100644 --- a/dist/nvi/ex/ex_join.c +++ b/dist/nvi/ex/ex_join.c @@ -1,4 +1,4 @@ -/* $NetBSD: ex_join.c,v 1.2 2008/12/05 22:51:42 christos Exp $ */ +/* $NetBSD: ex_join.c,v 1.3 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -38,7 +38,8 @@ ex_join(SCR *sp, EXCMD *cmdp) { db_recno_t from, to; size_t blen, clen, len, tlen; - int echar = 0, extra, first; + ARG_CHAR_T echar = 0; + int extra, first; CHAR_T *bp, *tbp = NULL; CHAR_T *p; @@ -105,17 +106,17 @@ ex_join(SCR *sp, EXCMD *cmdp) */ extra = 0; if (!first && !FL_ISSET(cmdp->iflags, E_C_FORCE)) { - if (isblank(echar)) - for (; len && isblank(*p); --len, ++p); + if (ISBLANK(echar)) + for (; len && ISBLANK((UCHAR_T)*p); --len, ++p); else if (p[0] != ')') { - if (strchr(".?!", echar)) { + if (STRCHR(L(".?!"), echar)) { *tbp++ = ' '; ++clen; extra = 1; } *tbp++ = ' '; ++clen; - for (; len && isblank(*p); --len, ++p); + for (; len && ISBLANK((UCHAR_T)*p); --len, ++p); } } diff --git a/dist/nvi/ex/ex_map.c b/dist/nvi/ex/ex_map.c index 907dde37ebfb..4e53932a6f44 100644 --- a/dist/nvi/ex/ex_map.c +++ b/dist/nvi/ex/ex_map.c @@ -1,4 +1,4 @@ -/* $NetBSD: ex_map.c,v 1.1.1.2 2008/05/18 14:31:16 aymeric Exp $ */ +/* $NetBSD: ex_map.c,v 1.2 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -71,8 +71,8 @@ ex_map(SCR *sp, EXCMD *cmdp) * call it as well. Note, the SEQ_FUNCMAP type is persistent across * screen types, maybe the next screen type will get it right. */ - if (input[0] == '#' && isdigit(input[1])) { - for (p = input + 2; isdigit(*p); ++p); + if (input[0] == '#' && ISDIGIT((UCHAR_T)input[1])) { + for (p = input + 2; ISDIGIT((UCHAR_T)*p); ++p); if (p[0] != '\0') goto nofunc; diff --git a/dist/nvi/ex/ex_perl.c b/dist/nvi/ex/ex_perl.c index b4eebe78b7d6..a53dd2308e33 100644 --- a/dist/nvi/ex/ex_perl.c +++ b/dist/nvi/ex/ex_perl.c @@ -1,4 +1,4 @@ -/* $NetBSD: ex_perl.c,v 1.1.1.2 2008/05/18 14:31:16 aymeric Exp $ */ +/* $NetBSD: ex_perl.c,v 1.2 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -53,7 +53,7 @@ ex_perl(SCR *sp, EXCMD *cmdp) if (cmdp->argc != 0) for (p = cmdp->argv[0]->bp, len = cmdp->argv[0]->len; len > 0; --len, ++p) - if (!isblank(*p)) + if (!ISBLANK((UCHAR_T)*p)) break; if (cmdp->argc == 0 || len == 0) { ex_emsg(sp, cmdp->cmd->usage, EXM_USAGE); diff --git a/dist/nvi/ex/ex_shell.c b/dist/nvi/ex/ex_shell.c index 34b7eaba9dbe..0d4065c74b54 100644 --- a/dist/nvi/ex/ex_shell.c +++ b/dist/nvi/ex/ex_shell.c @@ -1,4 +1,4 @@ -/* $NetBSD: ex_shell.c,v 1.4 2009/11/15 18:43:28 dsl Exp $ */ +/* $NetBSD: ex_shell.c,v 1.5 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -20,6 +20,7 @@ static const char sccsid[] = "Id: ex_shell.c,v 10.42 2003/11/05 17:11:54 skimo E #include #include +#include #include #include #include @@ -169,7 +170,7 @@ proc_wait(SCR *sp, long int pid, const char *cmd, int silent, int okpipe) * exit before reading all of its input. */ if (WIFSIGNALED(pstat) && (!okpipe || WTERMSIG(pstat) != SIGPIPE)) { - for (; isblank(*cmd); ++cmd); + for (; isblank((unsigned char)*cmd); ++cmd); p = msg_print(sp, cmd, &nf); len = strlen(p); msgq(sp, M_ERR, "%.*s%s: received signal: %s%s", @@ -191,7 +192,7 @@ proc_wait(SCR *sp, long int pid, const char *cmd, int silent, int okpipe) * practice. */ if (!silent) { - for (; isblank(*cmd); ++cmd); + for (; isblank((unsigned char)*cmd); ++cmd); p = msg_print(sp, cmd, &nf); len = strlen(p); msgq(sp, M_ERR, "%.*s%s: exited with status %d", diff --git a/dist/nvi/ex/ex_subst.c b/dist/nvi/ex/ex_subst.c index 8a05de463713..67c5c1fa34d4 100644 --- a/dist/nvi/ex/ex_subst.c +++ b/dist/nvi/ex/ex_subst.c @@ -1,4 +1,4 @@ -/* $NetBSD: ex_subst.c,v 1.3 2009/12/23 12:44:22 mlelstv Exp $ */ +/* $NetBSD: ex_subst.c,v 1.4 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -55,7 +55,7 @@ ex_s(SCR *sp, EXCMD *cmdp) regex_t *re; size_t blen, len; u_int flags; - int delim; + ARG_CHAR_T delim; CHAR_T *bp, *p, *ptrn, *rep, *t; /* @@ -73,14 +73,14 @@ ex_s(SCR *sp, EXCMD *cmdp) goto subagain; for (p = cmdp->argv[0]->bp, len = cmdp->argv[0]->len; len > 0; --len, ++p) { - if (!isblank(*p)) + if (!ISBLANK((UCHAR_T)*p)) break; } if (len == 0) subagain: return (ex_subagain(sp, cmdp)); - delim = *p++; - if (isalnum(delim) || delim == '\\') + delim = (UCHAR_T)*p++; + if (ISALNUM(delim) || delim == '\\') return (s(sp, cmdp, p, &sp->subre_c, SUB_MUSTSETR)); /* @@ -912,7 +912,7 @@ re_compile(SCR *sp, CHAR_T *ptrn, size_t plen, CHAR_T **ptrnp, size_t *lenp, reg } if (LF_ISSET(SEARCH_ICL)) { iclower: for (p = ptrn, len = plen; len > 0; ++p, --len) - if (ISUPPER(*p)) + if (ISUPPER((UCHAR_T)*p)) break; if (len == 0) reflags |= REG_ICASE; @@ -1355,8 +1355,8 @@ re_sub(SCR *sp, CHAR_T *ip, CHAR_T **lbp, size_t *lbclenp, size_t *lblenp, regma * all escaping characters. This (hopefully) matches historic practice. */ #define OUTCH(ch, nltrans) { \ - CHAR_T __ch = (ch); \ - u_int __value = KEY_VAL(sp, __ch); \ + ARG_CHAR_T __ch = (ch); \ + e_key_t __value = KEY_VAL(sp, __ch); \ if (nltrans && (__value == K_CR || __value == K_NL)) { \ NEEDNEWLINE(sp); \ sp->newl[sp->newl_cnt++] = lbclen; \ @@ -1413,7 +1413,7 @@ subzero: if (match[no].rm_so == -1 || break; mlen = match[no].rm_eo - match[no].rm_so; for (t = ip + match[no].rm_so; mlen--; ++t) - OUTCH(*t, 0); + OUTCH((UCHAR_T)*t, 0); continue; case 'e': case 'E': diff --git a/dist/nvi/ex/ex_tag.c b/dist/nvi/ex/ex_tag.c index d4845b3a686e..8680873028d0 100644 --- a/dist/nvi/ex/ex_tag.c +++ b/dist/nvi/ex/ex_tag.c @@ -1,4 +1,4 @@ -/* $NetBSD: ex_tag.c,v 1.8 2010/05/13 17:52:11 tnozaki Exp $ */ +/* $NetBSD: ex_tag.c,v 1.9 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -962,7 +962,7 @@ ctag_search(SCR *sp, CHAR_T *search, size_t slen, char *tag) * used a line number, not a search string. I got complaints, so * people are still using the format. POSIX 1003.2 permits it. */ - if (ISDIGIT(search[0])) { + if (ISDIGIT((UCHAR_T)search[0])) { INT2CHAR(sp, search, slen+1, np, nlen); m.lno = atoi(np); if (!db_exist(sp, m.lno)) { diff --git a/dist/nvi/ex/ex_tcl.c b/dist/nvi/ex/ex_tcl.c index 0a6d7c4bfae0..4e24c5af24b7 100644 --- a/dist/nvi/ex/ex_tcl.c +++ b/dist/nvi/ex/ex_tcl.c @@ -1,4 +1,4 @@ -/* $NetBSD: ex_tcl.c,v 1.1.1.2 2008/05/18 14:31:20 aymeric Exp $ */ +/* $NetBSD: ex_tcl.c,v 1.2 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -57,7 +57,7 @@ ex_tcl(SCR *sp, EXCMD *cmdp) if (cmdp->argc != 0) for (p = cmdp->argv[0]->bp, len = cmdp->argv[0]->len; len > 0; --len, ++p) - if (!isblank(*p)) + if (!ISBLANK((UCHAR_T)*p)) break; if (cmdp->argc == 0 || len == 0) { ex_emsg(sp, cmdp->cmd->usage, EXM_USAGE); diff --git a/dist/nvi/ex/ex_txt.c b/dist/nvi/ex/ex_txt.c index 6c1913c0bb41..ee10ac3f6812 100644 --- a/dist/nvi/ex/ex_txt.c +++ b/dist/nvi/ex/ex_txt.c @@ -1,4 +1,4 @@ -/* $NetBSD: ex_txt.c,v 1.5 2009/11/14 23:40:11 christos Exp $ */ +/* $NetBSD: ex_txt.c,v 1.6 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -246,7 +246,7 @@ notlast: CIRCLEQ_REMOVE(tiqh, tp, q); */ if (LF_ISSET(TXT_CNTRLD)) { for (cnt = 0; cnt < tp->len; ++cnt) - if (!isblank(tp->lb[cnt])) + if (!ISBLANK((UCHAR_T)tp->lb[cnt])) break; if (cnt == tp->len) { tp->len = 1; diff --git a/dist/nvi/ex/ex_usage.c b/dist/nvi/ex/ex_usage.c index 0bc73a0fa456..020c20202c6d 100644 --- a/dist/nvi/ex/ex_usage.c +++ b/dist/nvi/ex/ex_usage.c @@ -1,4 +1,4 @@ -/* $NetBSD: ex_usage.c,v 1.5 2010/05/13 17:52:11 tnozaki Exp $ */ +/* $NetBSD: ex_usage.c,v 1.6 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -68,9 +68,9 @@ ex_usage(SCR *sp, EXCMD *cmdp) switch (cmdp->argc) { case 1: ap = cmdp->argv[0]; - if (ISUPPER(ap->bp[0])) { + if (ISUPPER((UCHAR_T)ap->bp[0])) { newscreen = 1; - ap->bp[0] = TOLOWER(ap->bp[0]); + ap->bp[0] = TOLOWER((UCHAR_T)ap->bp[0]); } else newscreen = 0; for (cp = cmds; cp->name != NULL && @@ -81,7 +81,7 @@ ex_usage(SCR *sp, EXCMD *cmdp) size_t nlen; if (newscreen) - ap->bp[0] = TOUPPER(ap->bp[0]); + ap->bp[0] = TOUPPER((UCHAR_T)ap->bp[0]); INT2CHAR(sp, ap->bp, ap->len + 1, nstr, nlen); (void)ex_printf(sp, "The %.*s command is unknown\n", @@ -119,7 +119,7 @@ ex_usage(SCR *sp, EXCMD *cmdp) name = L("^D"); else if (F_ISSET(cp, E_NEWSCREEN)) { nb[0] = L('['); - nb[1] = TOUPPER(cp->name[0]); + nb[1] = TOUPPER((UCHAR_T)cp->name[0]); nb[2] = cp->name[0]; nb[3] = L(']'); for (name = cp->name + 1, diff --git a/dist/nvi/ex/ex_write.c b/dist/nvi/ex/ex_write.c index e6ca9fa1a503..53f7eacc5d9a 100644 --- a/dist/nvi/ex/ex_write.c +++ b/dist/nvi/ex/ex_write.c @@ -1,4 +1,4 @@ -/* $NetBSD: ex_write.c,v 1.3 2009/10/31 14:30:55 dsl Exp $ */ +/* $NetBSD: ex_write.c,v 1.4 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -145,7 +145,7 @@ exwr(SCR *sp, EXCMD *cmdp, enum which cmd) /* Skip any leading whitespace. */ if (cmdp->argc != 0) - for (p = cmdp->argv[0]->bp; *p != '\0' && isblank(*p); ++p); + for (p = cmdp->argv[0]->bp; *p != '\0' && ISBLANK((UCHAR_T)*p); ++p); /* If "write !" it's a pipe to a utility. */ if (cmdp->argc != 0 && cmd == WRITE && *p == '!') { @@ -156,7 +156,7 @@ exwr(SCR *sp, EXCMD *cmdp, enum which cmd) } /* Expand the argument. */ - for (++p; *p && isblank(*p); ++p); + for (++p; *p && ISBLANK((UCHAR_T)*p); ++p); if (*p == '\0') { ex_emsg(sp, cmdp->cmd->usage, EXM_USAGE); return (1); @@ -203,7 +203,7 @@ exwr(SCR *sp, EXCMD *cmdp, enum which cmd) LF_SET(FS_APPEND); /* Skip ">>" and whitespace. */ - for (p += 2; *p && isblank(*p); ++p); + for (p += 2; *p && ISBLANK((UCHAR_T)*p); ++p); } /* If no other arguments, just write the file back. */ diff --git a/dist/nvi/ip/ip_main.c b/dist/nvi/ip/ip_main.c index 4567903cd3b5..5bb749e84d9b 100644 --- a/dist/nvi/ip/ip_main.c +++ b/dist/nvi/ip/ip_main.c @@ -1,4 +1,4 @@ -/* $NetBSD: ip_main.c,v 1.1.1.2 2008/05/18 14:31:24 aymeric Exp $ */ +/* $NetBSD: ip_main.c,v 1.2 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1996 @@ -211,10 +211,10 @@ get_fds(char *ip_arg, int *i_fd, int *o_fd) * file descriptor from the screen, the second is the file descriptor * to the screen. */ - if (!ip_arg || !isdigit(ip_arg[0])) + if (!ip_arg || !isdigit((unsigned char)ip_arg[0])) goto usage; *i_fd = strtol(ip_arg, &ep, 10); - if (ep[0] != '.' || !isdigit(ep[1])) + if (ep[0] != '.' || !isdigit((unsigned char)ep[1])) goto usage; *o_fd = strtol(++ep, &ep, 10); if (ep[0] != '\0') { diff --git a/dist/nvi/motif_l/m_vi.c b/dist/nvi/motif_l/m_vi.c index 64debe890fe2..e48ea2cffbf9 100644 --- a/dist/nvi/motif_l/m_vi.c +++ b/dist/nvi/motif_l/m_vi.c @@ -1,4 +1,4 @@ -/* $NetBSD: m_vi.c,v 1.1.1.2 2008/05/18 14:31:29 aymeric Exp $ */ +/* $NetBSD: m_vi.c,v 1.2 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1996 @@ -1107,10 +1107,10 @@ int *start; switch ( select_type ) { case select_word: - if ( *start == 0 || isspace( cur_screen->characters[*start] ) ) + if ( *start == 0 || isspace( (unsigned char)cur_screen->characters[*start] ) ) return; for (;;) { - if ( isspace( cur_screen->characters[*start-1] ) ) + if ( isspace( (unsigned char)cur_screen->characters[*start-1] ) ) return; if ( --(*start) == 0 ) return; @@ -1136,10 +1136,10 @@ int *end; switch ( select_type ) { case select_word: - if ( *end == last || isspace( cur_screen->characters[*end] ) ) + if ( *end == last || isspace( (unsigned char)cur_screen->characters[*end] ) ) return; for (;;) { - if ( isspace( cur_screen->characters[*end+1] ) ) + if ( isspace( (unsigned char)cur_screen->characters[*end+1] ) ) return; if ( ++(*end) == last ) return; @@ -1381,7 +1381,7 @@ __vi_set_word_at_caret(xvi_screen *this_screen) /* Note that this really ought to be done by core due to wrapping issues */ for ( end = start = CharAt( this_screen, newy, newx ); - (isalnum( *end ) || *end == '_') && (newx < this_screen->cols); + (isalnum( (unsigned char)*end ) || *end == '_') && (newx < this_screen->cols); end++, newx++ ); save = *end; diff --git a/dist/nvi/regex/regcomp.c b/dist/nvi/regex/regcomp.c index 1da72753d056..5abc6a7a5fef 100644 --- a/dist/nvi/regex/regcomp.c +++ b/dist/nvi/regex/regcomp.c @@ -1,4 +1,4 @@ -/* $NetBSD: regcomp.c,v 1.5 2009/08/30 14:57:51 tnozaki Exp $ */ +/* $NetBSD: regcomp.c,v 1.6 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 Henry Spencer. @@ -414,7 +414,7 @@ p_ere_exp(register struct parse *p) ordinary(p, c); break; case '{': /* okay as ordinary except if digit follows */ - (void)REQUIRE(!MORE() || !isdigit(PEEK()), REG_BADRPT); + (void)REQUIRE(!MORE() || !ISDIGIT((UCHAR_T)PEEK()), REG_BADRPT); /* FALLTHROUGH */ default: ordinary(p, c); @@ -426,7 +426,7 @@ p_ere_exp(register struct parse *p) c = PEEK(); /* we call { a repetition if followed by a digit */ if (!( c == '*' || c == '+' || c == '?' || - (c == '{' && MORE2() && isdigit(PEEK2())) )) + (c == '{' && MORE2() && ISDIGIT((UCHAR_T)PEEK2())) )) return; /* no repetition, we're done */ NEXT(); @@ -455,7 +455,7 @@ p_ere_exp(register struct parse *p) case '{': count = p_count(p); if (EAT(',')) { - if (isdigit(PEEK())) { + if (ISDIGIT((UCHAR_T)PEEK())) { count2 = p_count(p); (void)REQUIRE(count <= count2, REG_BADBR); } else /* single number with comma */ @@ -476,7 +476,7 @@ p_ere_exp(register struct parse *p) return; c = PEEK(); if (!( c == '*' || c == '+' || c == '?' || - (c == '{' && MORE2() && isdigit(PEEK2())) ) ) + (c == '{' && MORE2() && ISDIGIT((UCHAR_T)PEEK2())) ) ) return; SETERROR(REG_BADRPT); } @@ -639,7 +639,7 @@ p_simp_re(register struct parse *p, int starordinary) } else if (EATTWO('\\', '{')) { count = p_count(p); if (EAT(',')) { - if (MORE() && isdigit(PEEK())) { + if (MORE() && ISDIGIT((UCHAR_T)PEEK())) { count2 = p_count(p); (void)REQUIRE(count <= count2, REG_BADBR); } else /* single number with comma */ @@ -669,7 +669,7 @@ p_count(register struct parse *p) register int count = 0; register int ndigits = 0; - while (MORE() && isdigit(PEEK()) && count <= DUPMAX) { + while (MORE() && ISDIGIT((UCHAR_T)PEEK()) && count <= DUPMAX) { count = count*10 + (GETNEXT() - '0'); ndigits++; } diff --git a/dist/nvi/regex/regex2.h b/dist/nvi/regex/regex2.h index 5282e9b2bff9..50764db38a5d 100644 --- a/dist/nvi/regex/regex2.h +++ b/dist/nvi/regex/regex2.h @@ -1,4 +1,4 @@ -/* $NetBSD: regex2.h,v 1.2 2009/01/02 00:32:11 tnozaki Exp $ */ +/* $NetBSD: regex2.h,v 1.3 2011/03/21 14:53:03 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 Henry Spencer. @@ -171,4 +171,4 @@ struct re_guts { /* misc utilities */ #define OUT WEOF /* a non-character value */ -#define ISWORD(c) (((UCHAR_T)c <= 0xFF && isalnum((unsigned char)c)) || (c) == '_') +#define ISWORD(c) ((c) == '_' || (ISGRAPH((UCHAR_T)c) && !ISPUNCT((UCHAR_T)c))) diff --git a/dist/nvi/vi/getc.c b/dist/nvi/vi/getc.c index d7c63acb4a7d..950d43c2f68e 100644 --- a/dist/nvi/vi/getc.c +++ b/dist/nvi/vi/getc.c @@ -1,4 +1,4 @@ -/* $NetBSD: getc.c,v 1.2 2008/12/05 22:51:43 christos Exp $ */ +/* $NetBSD: getc.c,v 1.3 2011/03/21 14:53:04 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -123,12 +123,12 @@ cs_next(SCR *sp, VCS *csp) int cs_fspace(SCR *sp, VCS *csp) { - if (csp->cs_flags != 0 || !isblank(csp->cs_ch)) + if (csp->cs_flags != 0 || !ISBLANK2(csp->cs_ch)) return (0); for (;;) { if (cs_next(sp, csp)) return (1); - if (csp->cs_flags != 0 || !isblank(csp->cs_ch)) + if (csp->cs_flags != 0 || !ISBLANK2(csp->cs_ch)) break; } return (0); @@ -147,7 +147,7 @@ cs_fblank(SCR *sp, VCS *csp) if (cs_next(sp, csp)) return (1); if (csp->cs_flags == CS_EOL || csp->cs_flags == CS_EMP || - (csp->cs_flags == 0 && isblank(csp->cs_ch))) + (csp->cs_flags == 0 && ISBLANK2(csp->cs_ch))) continue; break; } @@ -216,7 +216,7 @@ cs_bblank(SCR *sp, VCS *csp) if (cs_prev(sp, csp)) return (1); if (csp->cs_flags == CS_EOL || csp->cs_flags == CS_EMP || - (csp->cs_flags == 0 && isblank(csp->cs_ch))) + (csp->cs_flags == 0 && ISBLANK2(csp->cs_ch))) continue; break; } diff --git a/dist/nvi/vi/v_increment.c b/dist/nvi/vi/v_increment.c index 10a33e09b90a..676b48cacb20 100644 --- a/dist/nvi/vi/v_increment.c +++ b/dist/nvi/vi/v_increment.c @@ -1,4 +1,4 @@ -/* $NetBSD: v_increment.c,v 1.4 2009/08/11 21:28:02 aymeric Exp $ */ +/* $NetBSD: v_increment.c,v 1.5 2011/03/21 14:53:04 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -93,7 +93,7 @@ v_increment(SCR *sp, VICMD *vp) * implies moving the cursor to its beginning, if we moved, refresh * now. */ - for (beg = vp->m_start.cno; beg < len && isspace(p[beg]); ++beg); + for (beg = vp->m_start.cno; beg < len && ISSPACE((UCHAR_T)p[beg]); ++beg); if (beg >= len) goto nonum; if (beg != vp->m_start.cno) { @@ -101,10 +101,8 @@ v_increment(SCR *sp, VICMD *vp) (void)vs_refresh(sp, 0); } -#undef ishex -#define ishex(c) (isdigit(c) || STRCHR(L("abcdefABCDEF"), c)) #undef isoctal -#define isoctal(c) (isdigit(c) && (c) != '8' && (c) != '9') +#define isoctal(c) ((c) >= '0' && (c) <= '7') /* * Look for 0[Xx], or leading + or - signs, guess at the base. @@ -117,26 +115,26 @@ v_increment(SCR *sp, VICMD *vp) (p[beg + 1] == 'X' || p[beg + 1] == 'x')) { base = 16; end = beg + 2; - if (!ishex(p[end])) + if (!ISXDIGIT((UCHAR_T)p[end])) goto decimal; ntype = p[beg + 1] == 'X' ? fmt[HEXC] : fmt[HEXL]; } else if (p[beg] == '0' && wlen > 1) { base = 8; end = beg + 1; - if (!isoctal(p[end])) + if (!isoctal((UCHAR_T)p[end])) goto decimal; ntype = fmt[OCTAL]; } else if (wlen >= 1 && (p[beg] == '+' || p[beg] == '-')) { base = 10; end = beg + 1; ntype = fmt[SDEC]; - if (!isdigit(p[end])) + if (!ISDIGIT((UCHAR_T)p[end])) goto nonum; } else { decimal: base = 10; end = beg; ntype = fmt[DEC]; - if (!isdigit(p[end])) { + if (!ISDIGIT((UCHAR_T)p[end])) { nonum: msgq(sp, M_ERR, "181|Cursor not in a number"); return (1); } @@ -146,7 +144,7 @@ nonum: msgq(sp, M_ERR, "181|Cursor not in a number"); while (++end < len) { switch (base) { case 8: - if (isoctal(p[end])) + if (isoctal((UCHAR_T)p[end])) continue; if (p[end] == '8' || p[end] == '9') { base = 10; @@ -155,11 +153,11 @@ nonum: msgq(sp, M_ERR, "181|Cursor not in a number"); } break; case 10: - if (isdigit(p[end])) + if (ISDIGIT((UCHAR_T)p[end])) continue; break; case 16: - if (ishex(p[end])) + if (ISXDIGIT((UCHAR_T)p[end])) continue; break; default: diff --git a/dist/nvi/vi/v_match.c b/dist/nvi/vi/v_match.c index 1921552f23a3..be80b9a43752 100644 --- a/dist/nvi/vi/v_match.c +++ b/dist/nvi/vi/v_match.c @@ -1,4 +1,4 @@ -/* $NetBSD: v_match.c,v 1.4 2009/01/18 03:45:50 lukem Exp $ */ +/* $NetBSD: v_match.c,v 1.5 2011/03/21 14:53:04 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -163,7 +163,7 @@ nomatch: msgq(sp, M_BERR, "184|No match character on this line"); if (db_get(sp, mp->lno, DBG_FATAL, &p, &len)) return (1); for (p += mp->cno + 1, len -= mp->cno; --len; ++p) - if (!isblank(*p)) + if (!ISBLANK((UCHAR_T)*p)) return (0); F_SET(vp, VM_LMODE); return (0); diff --git a/dist/nvi/vi/v_replace.c b/dist/nvi/vi/v_replace.c index f6d7415063f2..faf2d16059d9 100644 --- a/dist/nvi/vi/v_replace.c +++ b/dist/nvi/vi/v_replace.c @@ -1,4 +1,4 @@ -/* $NetBSD: v_replace.c,v 1.2 2008/12/05 22:51:43 christos Exp $ */ +/* $NetBSD: v_replace.c,v 1.3 2011/03/21 14:53:04 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -174,7 +174,7 @@ next: if (v_event_get(sp, &ev, 0, 0)) p += vp->m_start.cno + cnt; len -= vp->m_start.cno + cnt; if (len != 0 && O_ISSET(sp, O_AUTOINDENT)) - for (; len && isblank(*p); --len, ++p); + for (; len && ISBLANK((UCHAR_T)*p); --len, ++p); if ((tp = text_init(sp, p, len, len)) == NULL) goto err_ret; diff --git a/dist/nvi/vi/v_search.c b/dist/nvi/vi/v_search.c index e27e8af69f5b..4ded14a58ff9 100644 --- a/dist/nvi/vi/v_search.c +++ b/dist/nvi/vi/v_search.c @@ -1,4 +1,4 @@ -/* $NetBSD: v_search.c,v 1.3 2010/10/28 18:12:47 christos Exp $ */ +/* $NetBSD: v_search.c,v 1.4 2011/03/21 14:53:04 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -227,7 +227,7 @@ v_exaddr(SCR *sp, VICMD *vp, dir_t dir) /* No blanks, just like the z command. */ for (t = cmd + 1, tlen = len - 1; tlen > 0; ++t, --tlen) - if (!isdigit(*t)) + if (!ISDIGIT((UCHAR_T)*t)) break; if (tlen && (*t == '-' || *t == '.' || *t == '+' || *t == '^')) { diff --git a/dist/nvi/vi/v_sentence.c b/dist/nvi/vi/v_sentence.c index aa12d6f2abf6..9ee151d57b5d 100644 --- a/dist/nvi/vi/v_sentence.c +++ b/dist/nvi/vi/v_sentence.c @@ -1,4 +1,4 @@ -/* $NetBSD: v_sentence.c,v 1.2 2008/12/05 22:51:43 christos Exp $ */ +/* $NetBSD: v_sentence.c,v 1.3 2011/03/21 14:53:04 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -74,7 +74,7 @@ v_sentencef(SCR *sp, VICMD *vp) * This may not handle " . " correctly, but it's real unclear * what correctly means in that case. */ - if (cs.cs_flags == CS_EMP || (cs.cs_flags == 0 && isblank(cs.cs_ch))) { + if (cs.cs_flags == CS_EMP || (cs.cs_flags == 0 && ISBLANK2(cs.cs_ch))) { if (cs_fblank(sp, &cs)) return (1); if (--cnt == 0) { @@ -95,7 +95,7 @@ v_sentencef(SCR *sp, VICMD *vp) if (cs_next(sp, &cs)) return (1); if (cs.cs_flags == 0 && - isblank(cs.cs_ch) && cs_fblank(sp, &cs)) + ISBLANK2(cs.cs_ch) && cs_fblank(sp, &cs)) return (1); goto okret; } @@ -235,11 +235,11 @@ v_sentenceb(SCR *sp, VICMD *vp) if (cs.cs_flags != CS_EOL) break; } - } else if (cs.cs_flags == 0 && !isblank(cs.cs_ch)) + } else if (cs.cs_flags == 0 && !ISBLANK2(cs.cs_ch)) for (;;) { if (cs_prev(sp, &cs)) return (1); - if (cs.cs_flags != 0 || isblank(cs.cs_ch)) + if (cs.cs_flags != 0 || ISBLANK2(cs.cs_ch)) break; } @@ -282,7 +282,7 @@ ret: slno = cs.cs_lno; } while (!cs.cs_flags && (cs.cs_ch == ')' || cs.cs_ch == ']' || cs.cs_ch == '"' || cs.cs_ch == '\'')); - if ((cs.cs_flags || isblank(cs.cs_ch)) && + if ((cs.cs_flags || ISBLANK2(cs.cs_ch)) && cs_fblank(sp, &cs)) return (1); @@ -305,7 +305,7 @@ ret: slno = cs.cs_lno; return (1); if (cs.cs_flags == CS_EOL) continue; - if (cs.cs_flags == 0 && isblank(cs.cs_ch)) + if (cs.cs_flags == 0 && ISBLANK2(cs.cs_ch)) continue; break; } @@ -323,7 +323,7 @@ ret: slno = cs.cs_lno; break; default: last = - cs.cs_flags == CS_EOL || isblank(cs.cs_ch) || + cs.cs_flags == CS_EOL || ISBLANK2(cs.cs_ch) || cs.cs_ch == ')' || cs.cs_ch == ']' || cs.cs_ch == '"' || cs.cs_ch == '\'' ? 1 : 0; } diff --git a/dist/nvi/vi/v_txt.c b/dist/nvi/vi/v_txt.c index 798d3984b608..c4bbd3c630e0 100644 --- a/dist/nvi/vi/v_txt.c +++ b/dist/nvi/vi/v_txt.c @@ -1,4 +1,4 @@ -/* $NetBSD: v_txt.c,v 1.6 2009/08/07 16:19:54 lukem Exp $ */ +/* $NetBSD: v_txt.c,v 1.7 2011/03/21 14:53:04 tnozaki Exp $ */ /*- * Copyright (c) 1993, 1994 @@ -653,7 +653,7 @@ replay: if (LF_ISSET(TXT_REPLAY)) { * this test delimits the value by any non-hex character. Offset by * one, we use 0 to mean that we've found . */ - if (hexcnt > 1 && !isxdigit(evp->e_c)) { + if (hexcnt > 1 && !ISXDIGIT(evp->e_c)) { hexcnt = 0; if (txt_hex(sp, tp)) goto err; @@ -752,16 +752,16 @@ k_cr: if (LF_ISSET(TXT_CR)) { owrite = tp->owrite; insert = tp->insert; if (LF_ISSET(TXT_REPLACE) && owrite != 0) { - for (p = tp->lb + tp->cno; owrite > 0 && isblank(*p); + for (p = tp->lb + tp->cno; owrite > 0 && ISBLANK((UCHAR_T)*p); ++p, --owrite, ++tp->R_erase); if (owrite == 0) - for (; insert > 0 && isblank(*p); + for (; insert > 0 && ISBLANK((UCHAR_T)*p); ++p, ++tp->R_erase, --insert); } else { p = tp->lb + tp->cno + owrite; if (O_ISSET(sp, O_AUTOINDENT)) for (; insert > 0 && - isblank(*p); ++p, --insert); + ISBLANK((UCHAR_T)*p); ++p, --insert); owrite = 0; } @@ -1080,7 +1080,7 @@ leftmargin: tp->lb[tp->cno - 1] = ' '; } /* Skip over trailing space characters. */ - while (tp->cno > max && isblank(tp->lb[tp->cno - 1])) { + while (tp->cno > max && ISBLANK((UCHAR_T)tp->lb[tp->cno - 1])) { --tp->cno; ++tp->owrite; } @@ -1113,7 +1113,7 @@ leftmargin: tp->lb[tp->cno - 1] = ' '; ++tp->owrite; if (FL_ISSET(is_flags, IS_RUNNING)) tp->lb[tp->cno] = ' '; - if (isblank(tp->lb[tp->cno - 1])) + if (ISBLANK((UCHAR_T)tp->lb[tp->cno - 1])) break; } else { @@ -1122,18 +1122,18 @@ leftmargin: tp->lb[tp->cno - 1] = ' '; ++tp->owrite; if (FL_ISSET(is_flags, IS_RUNNING)) tp->lb[tp->cno] = ' '; - if (isblank(tp->lb[tp->cno - 1])) + if (ISBLANK((UCHAR_T)tp->lb[tp->cno - 1])) break; } if (tp->cno > max) - tmp = inword(tp->lb[tp->cno - 1]); + tmp = inword((UCHAR_T)tp->lb[tp->cno - 1]); while (tp->cno > max) { --tp->cno; ++tp->owrite; if (FL_ISSET(is_flags, IS_RUNNING)) tp->lb[tp->cno] = ' '; - if (tmp != inword(tp->lb[tp->cno - 1]) - || isblank(tp->lb[tp->cno - 1])) + if (tmp != inword((UCHAR_T)tp->lb[tp->cno - 1]) + || ISBLANK((UCHAR_T)tp->lb[tp->cno - 1])) break; } } @@ -1292,7 +1292,7 @@ insq_ch: /* goto resolve; } } - if (isblank(evp->e_c) && UNMAP_TST) + if (ISBLANK(evp->e_c) && UNMAP_TST) txt_unmap(sp, tp, &ec_flags); } if (abb != AB_NOTSET) @@ -1342,7 +1342,7 @@ insl_ch: if (txt_insch(sp, tp, &evp->e_c, flags)) if (txt_margin(sp, tp, &wmt, &tmp, flags)) goto err; if (tmp) { - if (isblank(evp->e_c)) + if (ISBLANK(evp->e_c)) wm_skip = 1; wm_set = 1; goto k_cr; @@ -1508,19 +1508,19 @@ txt_abbrev(SCR *sp, TEXT *tp, CHAR_T *pushcp, int isinfoline, int *didsubp, int off = tp->cno - 1; /* Previous character. */ p = tp->lb + off; len = 1; /* One character test. */ - if (off == tp->offset || isblank(p[-1])) + if (off == tp->offset || ISBLANK((UCHAR_T)p[-1])) goto search; - if (inword(p[-1])) /* Move backward to change. */ + if (inword((UCHAR_T)p[-1])) /* Move backward to change. */ for (;;) { --off; --p; ++len; - if (off == tp->offset || !inword(p[-1])) + if (off == tp->offset || !inword((UCHAR_T)p[-1])) break; } else for (;;) { --off; --p; ++len; if (off == tp->offset || - inword(p[-1]) || isblank(p[-1])) + inword((UCHAR_T)p[-1]) || ISBLANK((UCHAR_T)p[-1])) break; } @@ -1645,7 +1645,7 @@ txt_unmap(SCR *sp, TEXT *tp, u_int32_t *ec_flagsp) /* Find the beginning of this "word". */ for (off = tp->cno - 1, p = tp->lb + off, len = 0;; --p, --off) { - if (isblank(*p)) { + if (ISBLANK((UCHAR_T)*p)) { ++p; break; } @@ -1712,7 +1712,7 @@ txt_ai_resolve(SCR *sp, TEXT *tp, int *changedp) /* Figure out the last screen column. */ for (p = tp->lb, scno = 0, len = tp->len, - spaces = tab_after_sp = 0; len-- && isblank(*p); ++p) + spaces = tab_after_sp = 0; len-- && ISBLANK((UCHAR_T)*p); ++p) if (*p == '\t') { if (spaces) tab_after_sp = 1; @@ -1793,7 +1793,7 @@ v_txt_auto(SCR *sp, db_recno_t lno, TEXT *aitp, size_t len, TEXT *tp) /* Count whitespace characters. */ for (p = t; len > 0; ++p, --len) - if (!isblank(*p)) + if (!ISBLANK((UCHAR_T)*p)) break; /* Set count, check for no indentation. */ @@ -2012,7 +2012,7 @@ txt_fc(SCR *sp, TEXT *tp, int *redrawp) } else retry: for (len = 0, off = tp->cno - 1, p = tp->lb + off;; --off, --p) { - if (isblank(*p)) { + if (ISBLANK((UCHAR_T)*p)) { ++p; break; } @@ -2349,7 +2349,7 @@ txt_hex(SCR *sp, TEXT *tp) { CHAR_T savec; size_t len, off; - u_long value; + long value; CHAR_T *p, *wp; /* @@ -2378,7 +2378,7 @@ txt_hex(SCR *sp, TEXT *tp) /* Get the value. */ errno = 0; value = STRTOL(wp, NULL, 16); - if (errno || value > MAX_CHAR_T) { + if (errno || value < 0 || value > 0xff) { nothex: tp->lb[tp->cno] = savec; return (0); } @@ -2788,7 +2788,7 @@ txt_margin(SCR *sp, TEXT *tp, TEXT *wmtp, int *didbreak, u_int32_t flags) /* Find the nearest previous blank. */ for (off = tp->cno - 1, p = tp->lb + off, len = 0;; --off, --p, ++len) { - if (isblank(*p)) { + if (ISBLANK((UCHAR_T)*p)) { wp = p + 1; break; } @@ -2840,7 +2840,7 @@ txt_margin(SCR *sp, TEXT *tp, TEXT *wmtp, int *didbreak, u_int32_t flags) * Delete any trailing whitespace from the current line. */ for (;; --p, --off) { - if (!isblank(*p)) + if (!ISBLANK((UCHAR_T)*p)) break; --tp->cno; --tp->len; diff --git a/dist/nvi/vi/v_ulcase.c b/dist/nvi/vi/v_ulcase.c index f7ee75edc782..870eef8318a6 100644 --- a/dist/nvi/vi/v_ulcase.c +++ b/dist/nvi/vi/v_ulcase.c @@ -1,4 +1,4 @@ -/* $NetBSD: v_ulcase.c,v 1.2 2009/12/23 12:44:22 mlelstv Exp $ */ +/* $NetBSD: v_ulcase.c,v 1.3 2011/03/21 14:53:04 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -147,15 +147,15 @@ ulcase(SCR *sp, db_recno_t lno, CHAR_T *lp, size_t len, size_t scno, size_t ecno { size_t blen; int change, rval; - CHAR_T ch, *p, *t; - CHAR_T *bp; + ARG_CHAR_T ch; + CHAR_T *p, *t, *bp; GET_SPACE_RETW(sp, bp, blen, len); MEMMOVEW(bp, lp, len); change = rval = 0; for (p = bp + scno, t = bp + ecno + 1; p < t; ++p) { - ch = *p; + ch = (UCHAR_T)*p; if (ISLOWER(ch)) { *p = TOUPPER(ch); change = 1; diff --git a/dist/nvi/vi/v_util.c b/dist/nvi/vi/v_util.c index 305cfffb4af1..0335bc94007a 100644 --- a/dist/nvi/vi/v_util.c +++ b/dist/nvi/vi/v_util.c @@ -1,4 +1,4 @@ -/* $NetBSD: v_util.c,v 1.2 2008/12/05 22:51:43 christos Exp $ */ +/* $NetBSD: v_util.c,v 1.3 2011/03/21 14:53:04 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -125,7 +125,7 @@ int v_isempty(CHAR_T *p, size_t len) { for (; len--; ++p) - if (!isblank(*p)) + if (!ISBLANK((UCHAR_T)*p)) return (0); return (1); } diff --git a/dist/nvi/vi/v_word.c b/dist/nvi/vi/v_word.c index fa2420e457d5..33d48819d7a8 100644 --- a/dist/nvi/vi/v_word.c +++ b/dist/nvi/vi/v_word.c @@ -1,4 +1,4 @@ -/* $NetBSD: v_word.c,v 1.2 2008/12/05 22:51:43 christos Exp $ */ +/* $NetBSD: v_word.c,v 1.3 2011/03/21 14:53:04 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -120,7 +120,7 @@ fword(SCR *sp, VICMD *vp, enum which type) * counts as a single word move. If it's a motion command, * don't move off the end of the line. */ - if (cs.cs_flags == CS_EMP || (cs.cs_flags == 0 && isblank(cs.cs_ch))) { + if (cs.cs_flags == CS_EMP || (cs.cs_flags == 0 && ISBLANK2(cs.cs_ch))) { if (ISMOTION(vp) && cs.cs_flags != CS_EMP && cnt == 1) { if (ISCMD(vp->rkp, 'c')) return (0); @@ -148,7 +148,7 @@ fword(SCR *sp, VICMD *vp, enum which type) return (1); if (cs.cs_flags == CS_EOF) goto ret; - if (cs.cs_flags != 0 || isblank(cs.cs_ch)) + if (cs.cs_flags != 0 || ISBLANK2(cs.cs_ch)) break; } /* @@ -180,7 +180,7 @@ fword(SCR *sp, VICMD *vp, enum which type) return (1); if (cs.cs_flags == CS_EOF) goto ret; - if (cs.cs_flags != 0 || isblank(cs.cs_ch)) + if (cs.cs_flags != 0 || ISBLANK2(cs.cs_ch)) break; if (state == INWORD) { if (!inword(cs.cs_ch)) @@ -199,7 +199,7 @@ fword(SCR *sp, VICMD *vp, enum which type) } /* Eat whitespace characters. */ - if (cs.cs_flags != 0 || isblank(cs.cs_ch)) + if (cs.cs_flags != 0 || ISBLANK2(cs.cs_ch)) if (cs_fblank(sp, &cs)) return (1); if (cs.cs_flags == CS_EOF) @@ -279,10 +279,10 @@ eword(SCR *sp, VICMD *vp, enum which type) * it. (This doesn't count as a word move.) Stay at the character * past the current one, it sets word "state" for the 'e' command. */ - if (cs.cs_flags == 0 && !isblank(cs.cs_ch)) { + if (cs.cs_flags == 0 && !ISBLANK2(cs.cs_ch)) { if (cs_next(sp, &cs)) return (1); - if (cs.cs_flags == 0 && !isblank(cs.cs_ch)) + if (cs.cs_flags == 0 && !ISBLANK2(cs.cs_ch)) goto start; } if (cs_fblank(sp, &cs)) @@ -301,7 +301,7 @@ start: if (type == BIGWORD) return (1); if (cs.cs_flags == CS_EOF) goto ret; - if (cs.cs_flags != 0 || isblank(cs.cs_ch)) + if (cs.cs_flags != 0 || ISBLANK2(cs.cs_ch)) break; } /* @@ -330,7 +330,7 @@ start: if (type == BIGWORD) return (1); if (cs.cs_flags == CS_EOF) goto ret; - if (cs.cs_flags != 0 || isblank(cs.cs_ch)) + if (cs.cs_flags != 0 || ISBLANK2(cs.cs_ch)) break; if (state == INWORD) { if (!inword(cs.cs_ch)) @@ -347,7 +347,7 @@ start: if (type == BIGWORD) } /* Eat whitespace characters. */ - if (cs.cs_flags != 0 || isblank(cs.cs_ch)) + if (cs.cs_flags != 0 || ISBLANK2(cs.cs_ch)) if (cs_fblank(sp, &cs)) return (1); if (cs.cs_flags == CS_EOF) @@ -426,10 +426,10 @@ bword(SCR *sp, VICMD *vp, enum which type) * character before the current one, it sets word "state" for the * 'b' command. */ - if (cs.cs_flags == 0 && !isblank(cs.cs_ch)) { + if (cs.cs_flags == 0 && !ISBLANK2(cs.cs_ch)) { if (cs_prev(sp, &cs)) return (1); - if (cs.cs_flags == 0 && !isblank(cs.cs_ch)) + if (cs.cs_flags == 0 && !ISBLANK2(cs.cs_ch)) goto start; } if (cs_bblank(sp, &cs)) @@ -448,7 +448,7 @@ start: if (type == BIGWORD) return (1); if (cs.cs_flags == CS_SOF) goto ret; - if (cs.cs_flags != 0 || isblank(cs.cs_ch)) + if (cs.cs_flags != 0 || ISBLANK2(cs.cs_ch)) break; } /* @@ -477,7 +477,7 @@ start: if (type == BIGWORD) return (1); if (cs.cs_flags == CS_SOF) goto ret; - if (cs.cs_flags != 0 || isblank(cs.cs_ch)) + if (cs.cs_flags != 0 || ISBLANK2(cs.cs_ch)) break; if (state == INWORD) { if (!inword(cs.cs_ch)) @@ -494,7 +494,7 @@ start: if (type == BIGWORD) } /* Eat whitespace characters. */ - if (cs.cs_flags != 0 || isblank(cs.cs_ch)) + if (cs.cs_flags != 0 || ISBLANK2(cs.cs_ch)) if (cs_bblank(sp, &cs)) return (1); if (cs.cs_flags == CS_SOF) diff --git a/dist/nvi/vi/vi.c b/dist/nvi/vi/vi.c index 7ff34a51600e..44e6403f5b3c 100644 --- a/dist/nvi/vi/vi.c +++ b/dist/nvi/vi/vi.c @@ -1,4 +1,4 @@ -/* $NetBSD: vi.c,v 1.3 2009/11/15 18:43:28 dsl Exp $ */ +/* $NetBSD: vi.c,v 1.4 2011/03/21 14:53:04 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -450,7 +450,7 @@ v_cmd(SCR *sp, VICMD *dp, VICMD *vp, VICMD *ismotion, int *comcountp, int *mappe { enum { COMMANDMODE, ISPARTIAL, NOTPARTIAL } cpart; - CHAR_T key; + ARG_CHAR_T key; VIKEYS const *kp; gcret_t gcret; u_int flags; @@ -1084,7 +1084,7 @@ v_curword(SCR *sp) * follow the same rule. */ for (moved = 0, - beg = sp->cno; beg < len && isspace(p[beg]); moved = 1, ++beg); + beg = sp->cno; beg < len && ISSPACE((UCHAR_T)p[beg]); moved = 1, ++beg); if (beg >= len) { msgq(sp, M_BERR, "212|Cursor not in a word"); return (1); @@ -1254,9 +1254,9 @@ v_comlog(sp, vp) SCR *sp; VICMD *vp; { - vtrace(sp, "vcmd: %c", vp->key); + vtrace(sp, "vcmd: "WC, vp->key); if (F_ISSET(vp, VC_BUFFER)) - vtrace(sp, " buffer: %c", vp->buffer); + vtrace(sp, " buffer: "WC, vp->buffer); if (F_ISSET(vp, VC_C1SET)) vtrace(sp, " c1: %lu", vp->count); if (F_ISSET(vp, VC_C2SET)) diff --git a/dist/nvi/vi/vi.h b/dist/nvi/vi/vi.h index a504692e3f35..540b0061c886 100644 --- a/dist/nvi/vi/vi.h +++ b/dist/nvi/vi/vi.h @@ -1,4 +1,4 @@ -/* $NetBSD: vi.h,v 1.3 2008/12/05 22:51:43 christos Exp $ */ +/* $NetBSD: vi.h,v 1.4 2011/03/21 14:53:04 tnozaki Exp $ */ /*- * Copyright (c) 1992, 1993, 1994 @@ -12,20 +12,15 @@ */ /* Definition of a vi "word". */ -#ifdef USE_WIDECHAR -#define inword(ch) ((UCHAR_T)ch <= 255 && \ - (isalnum((unsigned char)ch) || (ch) == '_')) -#else -#define inword(ch) (isalnum((UCHAR_T)ch) || (ch) == '_') -#endif +#define inword(ch) ((ch) == '_' || (ISGRAPH((UCHAR_T)ch) && !ISPUNCT((UCHAR_T)ch))) typedef struct _vikeys VIKEYS; /* Structure passed around to functions implementing vi commands. */ typedef struct _vicmd { - CHAR_T key; /* Command key. */ - CHAR_T buffer; /* Buffer. */ - CHAR_T character; /* Character. */ + ARG_CHAR_T key; /* Command key. */ + ARG_CHAR_T buffer; /* Buffer. */ + ARG_CHAR_T character; /* Character. */ u_long count; /* Count. */ u_long count2; /* Second count (only used by z). */ EVENT ev; /* Associated event. */ @@ -160,7 +155,7 @@ typedef struct _vcs { size_t cs_cno; /* Column. */ CHAR_T *cs_bp; /* Buffer. */ size_t cs_len; /* Length. */ - CHAR_T cs_ch; /* Character. */ + ARG_CHAR_T cs_ch; /* Character. */ #define CS_EMP 1 /* Empty line. */ #define CS_EOF 2 /* End-of-file. */ #define CS_EOL 3 /* End-of-line. */