]> The Tcpdump Group git mirrors - tcpdump/blobdiff - util.c
refine the previous change
[tcpdump] / util.c
diff --git a/util.c b/util.c
index d7aa1fa75c28b871f3724570645caea06002beba..e7655c882564e9e4de6d4fa0a2ecefef88e09b09 100644 (file)
--- a/util.c
+++ b/util.c
@@ -59,12 +59,12 @@ fn_print(register const u_char *s, register const u_char *ep)
                        ret = 0;
                        break;
                }
-               if (!isascii(c)) {
-                       c = toascii(c);
+               if (!ND_ISASCII(c)) {
+                       c = ND_TOASCII(c);
                        putchar('M');
                        putchar('-');
                }
-               if (!isprint(c)) {
+               if (!ND_ISPRINT(c)) {
                        c ^= 0x40;      /* DEL to ?, others to alpha */
                        putchar('^');
                }
@@ -87,12 +87,12 @@ fn_printn(register const u_char *s, register u_int n,
        while (n > 0 && (ep == NULL || s < ep)) {
                n--;
                c = *s++;
-               if (!isascii(c)) {
-                       c = toascii(c);
+               if (!ND_ISASCII(c)) {
+                       c = ND_TOASCII(c);
                        putchar('M');
                        putchar('-');
                }
-               if (!isprint(c)) {
+               if (!ND_ISPRINT(c)) {
                        c ^= 0x40;      /* DEL to ?, others to alpha */
                        putchar('^');
                }
@@ -121,12 +121,12 @@ fn_printzp(register const u_char *s, register u_int n,
                        ret = 0;
                        break;
                }
-               if (!isascii(c)) {
-                       c = toascii(c);
+               if (!ND_ISASCII(c)) {
+                       c = ND_TOASCII(c);
                        putchar('M');
                        putchar('-');
                }
-               if (!isprint(c)) {
+               if (!ND_ISPRINT(c)) {
                        c ^= 0x40;      /* DEL to ?, others to alpha */
                        putchar('^');
                }
@@ -277,7 +277,7 @@ print_unknown_data(netdissect_options *ndo, const u_char *cp,const char *ident,i
  */
 const char *
 tok2strbuf(register const struct tok *lp, register const char *fmt,
-          register int v, char *buf, size_t bufsize)
+          register u_int v, char *buf, size_t bufsize)
 {
        if (lp != NULL) {
                while (lp->s != NULL) {
@@ -596,8 +596,28 @@ safeputchar(int c)
        unsigned char ch;
 
        ch = (unsigned char)(c & 0xff);
-       if (ch < 0x80 && isprint(ch))
+       if (ch < 0x80 && ND_ISPRINT(ch))
                printf("%c", ch);
        else
                printf("\\0x%02x", ch);
 }
+
+#ifdef LBL_ALIGN
+/*
+ * Some compilers try to optimize memcpy(), using the alignment constraint
+ * on the argument pointer type.  by using this function, we try to avoid the
+ * optimization.
+ */
+void
+unaligned_memcpy(void *p, const void *q, size_t l)
+{
+       memcpy(p, q, l);
+}
+
+/* As with memcpy(), so with memcmp(). */
+int
+unaligned_memcmp(const void *p, const void *q, size_t l)
+{
+       return (memcmp(p, q, l));
+}
+#endif