#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
-#include <ctype.h>
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
+#include "netdissect-ctype.h"
+
#include "netdissect.h"
#include "extract.h"
#include "ascii_strcasecmp.h"
c = ND_TOASCII(c);
ND_PRINT("M-");
}
- if (!ND_ISPRINT(c)) {
+ if (!ND_ASCII_ISPRINT(c)) {
c ^= 0x40; /* DEL to ?, others to alpha */
ND_PRINT("^");
}
{
const char *p;
for (p = ndo->ndo_protocol; *p != '\0'; p++)
- ND_PRINT("%c", ND_TOUPPER((u_char)*p));
+ ND_PRINT("%c", ND_ASCII_TOUPPER(*p));
}
/* Print the invalid string */
u_char *tbuf, size_t tbuflen)
{
size_t toklen = 0;
+ u_char c;
for (; idx < len; idx++) {
if (!ND_TTEST_1(pptr + idx)) {
/* ran past end of captured data */
return (0);
}
- if (!isascii(GET_U_1(pptr + idx))) {
+ c = GET_U_1(pptr + idx);
+ if (!ND_ISASCII(c)) {
/* not an ASCII character */
return (0);
}
- if (isspace(GET_U_1(pptr + idx))) {
+ if (c == ' ' || c == '\t' || c == '\r' || c == '\n') {
/* end of token */
break;
}
- if (!isprint(GET_U_1(pptr + idx))) {
+ if (!ND_ASCII_ISPRINT(c)) {
/* not part of a command token or response code */
return (0);
}
/* no room for this character and terminating '\0' */
return (0);
}
- tbuf[toklen] = GET_U_1(pptr + idx);
+ tbuf[toklen] = c;
toklen++;
}
if (toklen == 0) {
/* ran past end of captured data */
break;
}
- if (GET_U_1(pptr + idx) == '\r' || GET_U_1(pptr + idx) == '\n') {
+ c = GET_U_1(pptr + idx);
+ if (c == '\r' || c == '\n') {
/* end of line */
break;
}
- if (!isascii(GET_U_1(pptr + idx)) || !isprint(GET_U_1(pptr + idx))) {
+ if (!ND_ASCII_ISPRINT(c)) {
/* not a printable ASCII character */
break;
}
- if (!isspace(GET_U_1(pptr + idx))) {
+ if (c != ' ' && c != '\t' && c != '\r' && c != '\n') {
/* beginning of next token */
break;
}
{
u_int startidx;
u_int linelen;
+ u_char c;
startidx = idx;
while (idx < len) {
ND_TCHECK_1(pptr + idx);
- if (GET_U_1(pptr + idx) == '\n') {
+ c = GET_U_1(pptr + idx);
+ if (c == '\n') {
/*
* LF without CR; end of line.
* Skip the LF and print the line, with the
linelen = idx - startidx;
idx++;
goto print;
- } else if (GET_U_1(pptr + idx) == '\r') {
+ } else if (c == '\r') {
/* CR - any LF? */
if ((idx+1) >= len) {
/* not in this packet */
* it.
*/
return (0);
- } else if (!isascii(GET_U_1(pptr + idx)) ||
- (!isprint(GET_U_1(pptr + idx)) &&
- GET_U_1(pptr + idx) != '\t')) {
+ } else if (!ND_ASCII_ISPRINT(c) && c != '\t') {
/*
* Not a printable ASCII character and not a tab;
* treat this as if it were binary data, and
sizeof(token));
}
if (idx != 0) {
- if (isdigit(token[0]) && isdigit(token[1]) &&
- isdigit(token[2]) && token[3] == '\0') {
+ if (ND_ASCII_ISDIGIT(token[0]) && ND_ASCII_ISDIGIT(token[1]) &&
+ ND_ASCII_ISDIGIT(token[2]) && token[3] == '\0') {
/* Yes. */
print_this = 1;
}