]> The Tcpdump Group git mirrors - tcpdump/blobdiff - missing/snprintf.c
OpenFlow: Have a function for each message type.
[tcpdump] / missing / snprintf.c
index 49c70e61093d8fd9c4742979895e6a59c07b7b8f..2f12cf1635e9b066bbe3eb621c9c2f9f7181573b 100644 (file)
@@ -2,22 +2,22 @@
  * Copyright (c) 1995-1999 Kungliga Tekniska Högskolan
  * (Royal Institute of Technology, Stockholm, Sweden).
  * All rights reserved.
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * are met:
- * 
+ *
  * 1. Redistributions of source code must retain the above copyright
  *    notice, this list of conditions and the following disclaimer.
- * 
+ *
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 
+ *
  * 3. Neither the name of the Institute nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
- * 
+ *
  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  * SUCH DAMAGE.
  */
 
-/* $Id: snprintf.c,v 1.2 2000-01-09 21:35:46 fenner Exp $ */
-
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
 
-#ifndef lint
-static const char rcsid[] =
-     "@(#) $Header: /tcpdump/master/tcpdump/missing/snprintf.c,v 1.2 2000-01-09 21:35:46 fenner Exp $";
-#endif
-
 #include <stdio.h>
 #include <stdarg.h>
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
+#include <sys/types.h>
 
-#include <interface.h>
+#include "netdissect.h"
 
 enum format_flags {
     minus_flag     =  1,
@@ -73,25 +67,7 @@ struct state {
   /* XXX - methods */
 };
 
-#ifndef HAVE_VSNPRINTF
-static int
-sn_reserve (struct state *state, size_t n)
-{
-  return state->s + n > state->theend;
-}
-
-static int
-sn_append_char (struct state *state, unsigned char c)
-{
-  if (sn_reserve (state, 1)) {
-    return 1;
-  } else {
-    *state->s++ = c;
-    return 0;
-  }
-}
-#endif
-
+#if 0
 static int
 as_reserve (struct state *state, size_t n)
 {
@@ -125,6 +101,7 @@ as_append_char (struct state *state, unsigned char c)
     return 0;
   }
 }
+#endif
 
 static int
 append_number(struct state *state,
@@ -211,7 +188,7 @@ append_number(struct state *state,
       state->s[-i-1] = state->s[-len+i];
       state->s[-len+i] = c;
     }
-    
+
   return 0;
 }
 
@@ -255,13 +232,13 @@ append_char(struct state *state,
   while(!(flags & minus_flag) && --width > 0)
     if((*state->append_char) (state, ' '))
       return 1;
-    
+
   if((*state->append_char) (state, arg))
     return 1;
   while((flags & minus_flag) && --width > 0)
     if((*state->append_char) (state, ' '))
       return 1;
-    
+
   return 0;
 }
 
@@ -273,7 +250,7 @@ append_char(struct state *state,
 if (long_flag) \
      res = (unsig long)va_arg(arg, unsig long); \
 else if (short_flag) \
-     res = (unsig short)va_arg(arg, unsig short); \
+     res = (unsig short)va_arg(arg, unsig int); \
 else \
      res = (unsig int)va_arg(arg, unsig int)
 
@@ -310,7 +287,7 @@ xyzprintf (struct state *state, const char *char_format, va_list ap)
        else
          break;
       }
-      
+
       if((flags & space_flag) && (flags & plus_flag))
        flags ^= space_flag;
 
@@ -362,7 +339,7 @@ xyzprintf (struct state *state, const char *char_format, va_list ap)
        if (append_string(state,
                          va_arg(ap, unsigned char*),
                          width,
-                         prec, 
+                         prec,
                          flags))
          return -1;
        break;
@@ -458,37 +435,7 @@ xyzprintf (struct state *state, const char *char_format, va_list ap)
   return 0;
 }
 
-#ifndef HAVE_SNPRINTF
-int
-snprintf (char *str, size_t sz, const char *format, ...)
-{
-  va_list args;
-  int ret;
-
-  va_start(args, format);
-  ret = vsnprintf (str, sz, format, args);
-
-#ifdef PARANOIA
-  {
-    int ret2;
-    char *tmp;
-
-    tmp = malloc (sz);
-    if (tmp == NULL)
-      abort ();
-
-    ret2 = vsprintf (tmp, format, args);
-    if (ret != ret2 || strcmp(str, tmp))
-      abort ();
-    free (tmp);
-  }
-#endif
-
-  va_end(args);
-  return ret;
-}
-#endif
-
+#if 0
 #ifndef HAVE_ASPRINTF
 int
 asprintf (char **ret, const char *format, ...)
@@ -519,48 +466,9 @@ asprintf (char **ret, const char *format, ...)
 }
 #endif
 
-#ifndef HAVE_ASNPRINTF
-int
-asnprintf (char **ret, size_t max_sz, const char *format, ...)
-{
-  va_list args;
-  int val;
-
-  va_start(args, format);
-  val = vasnprintf (ret, max_sz, format, args);
-
-#ifdef PARANOIA
-  {
-    int ret2;
-    char *tmp;
-    tmp = malloc (val + 1);
-    if (tmp == NULL)
-      abort ();
-
-    ret2 = vsprintf (tmp, format, args);
-    if (val != ret2 || strcmp(*ret, tmp))
-      abort ();
-    free (tmp);
-  }
-#endif
-
-  va_end(args);
-  return val;
-}
-#endif
-
-#ifndef HAVE_VASPRINTF
-int
-vasprintf (char **ret, const char *format, va_list args)
-{
-  return vasnprintf (ret, 0, format, args);
-}
-#endif
-
-
 #ifndef HAVE_VASNPRINTF
 int
-vasnprintf (char **ret, size_t max_sz, const char *format, va_list args)
+nd_vasnprintf (char **ret, size_t max_sz, const char *format, va_list args)
 {
   int st;
   size_t len;
@@ -599,29 +507,4 @@ vasnprintf (char **ret, size_t max_sz, const char *format, va_list args)
   }
 }
 #endif
-
-#ifndef HAVE_VSNPRINTF
-int
-vsnprintf (char *str, size_t sz, const char *format, va_list args)
-{
-  struct state state;
-  int ret;
-  unsigned char *ustr = (unsigned char *)str;
-
-  state.max_sz = 0;
-  state.sz     = sz;
-  state.str    = ustr;
-  state.s      = ustr;
-  state.theend = ustr + sz - 1;
-  state.append_char = sn_append_char;
-  state.reserve     = sn_reserve;
-
-  ret = xyzprintf (&state, format, args);
-  *state.s = '\0';
-  if (ret)
-    return sz;
-  else
-    return state.s - state.str;
-}
 #endif
-