* utils.c (fmthex): A formatting function for hexdumps
authorJohn Metzler <jmetzler@cygnus>
Fri, 10 Apr 1998 17:59:12 +0000 (17:59 +0000)
committerJohn Metzler <jmetzler@cygnus>
Fri, 10 Apr 1998 17:59:12 +0000 (17:59 +0000)
gdb/ChangeLog
gdb/utils.c

index 5eb1138345ed0dee44d9f4b31e54b8df19e0550c..37bda15dbcd46f74808b82b752254205e4eca1b8 100644 (file)
@@ -1,5 +1,7 @@
 Fri Apr 10 10:35:35 1998  John Metzler  <jmetzler@cygnus.com>
 
+       * utils.c (fmthex): A formatting function for hexdumps
+
        *  mips-tdep.c (unpack_mips16): Fixed instruction decoding, lots of
        bit pattern interpretations. mips_fetch_instruction does not work
        for 16 bit instructions. Some confusion remains about sign
index 182ed34ba4710d24de732a368bf7c56c397adecd..9b40078d1fd2c005ed84857f1e41414f98c1bc07 100644 (file)
@@ -50,7 +50,7 @@ static void vfprintf_maybe_filtered PARAMS ((FILE *, const char *, va_list, int)
 
 static void fputs_maybe_filtered PARAMS ((const char *, FILE *, int));
 
-#if !defined (NO_MMALLOC) && !defined (NO_MMCHECK)
+#if defined (USE_MMALLOC) && !defined (NO_MMCHECK)
 static void malloc_botch PARAMS ((void));
 #endif
 
@@ -600,7 +600,7 @@ quit ()
   gdb_flush (gdb_stderr);
 
   /* 3.  The system-level buffer.  */
-  SERIAL_FLUSH_OUTPUT (gdb_stdout_serial);
+  SERIAL_DRAIN_OUTPUT (gdb_stdout_serial);
   SERIAL_UN_FDOPEN (gdb_stdout_serial);
 
   annotate_error_begin ();
@@ -711,7 +711,7 @@ request_quit (signo)
 #endif
 #endif
 
-#if defined (NO_MMALLOC)
+#if !defined (USE_MMALLOC)
 
 PTR
 mmalloc (md, size)
@@ -741,9 +741,9 @@ mfree (md, ptr)
   free (ptr);
 }
 
-#endif /* NO_MMALLOC */
+#endif /* USE_MMALLOC */
 
-#if defined (NO_MMALLOC) || defined (NO_MMCHECK)
+#if !defined (USE_MMALLOC) || defined (NO_MMCHECK)
 
 void
 init_malloc (md)
@@ -1208,6 +1208,37 @@ gdb_printchar (c, stream, quoter)
     fprintf_filtered (stream, "%c", c);
   }
 }
+
+
+
+
+static char * hexlate = "0123456789abcdef" ;
+int fmthex(inbuf,outbuff,length,linelength)
+     unsigned char * inbuf ;
+     unsigned char * outbuff;
+     int length;
+     int linelength;
+{
+  unsigned char byte , nib ;
+  int outlength = 0 ;
+
+  while (length)
+    {
+      if (outlength >= linelength) break ;
+      byte = *inbuf ;
+      inbuf++ ;
+      nib = byte >> 4 ;
+      *outbuff++ = hexlate[nib] ;
+      nib = byte &0x0f ;
+      *outbuff++ = hexlate[nib] ;
+      *outbuff++ = ' ' ;
+      length-- ;
+      outlength += 3 ;
+    }
+  *outbuff = '\0' ; /* null terminate our output line */
+  return outlength ;
+}
+
 \f
 /* Number of lines per page or UINT_MAX if paging is disabled.  */
 static unsigned int lines_per_page;