gdbtypes.resolve_dynamic_range: Add function description.
[deliverable/binutils-gdb.git] / gdb / valprint.c
index 01889c5261c63cd01836e1cff3d59f6c54590f54..f55b5db1100c5fe46548e82e38812b5f3f85e1eb 100644 (file)
@@ -32,7 +32,7 @@
 #include "doublest.h"
 #include "exceptions.h"
 #include "dfp.h"
-#include "python/python.h"
+#include "extension.h"
 #include "ada-lang.h"
 #include "gdb_obstack.h"
 #include "charset.h"
@@ -597,7 +597,7 @@ generic_val_print (struct type *type, const gdb_byte *valaddr,
       break;
 
     case TYPE_CODE_RANGE:
-      /* FIXME: create_range_type does not set the unsigned bit in a
+      /* FIXME: create_static_range_type does not set the unsigned bit in a
          range type (I think it probably should copy it from the
          target type), so we won't print values which are too large to
          fit in a signed integer correctly.  */
@@ -770,9 +770,9 @@ val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset,
 
   if (!options->raw)
     {
-      ret = apply_val_pretty_printer (type, valaddr, embedded_offset,
-                                     address, stream, recurse,
-                                     val, options, language);
+      ret = apply_ext_lang_val_pretty_printer (type, valaddr, embedded_offset,
+                                              address, stream, recurse,
+                                              val, options, language);
       if (ret)
        return;
     }
@@ -876,12 +876,13 @@ value_print (struct value *val, struct ui_file *stream,
 
   if (!options->raw)
     {
-      int r = apply_val_pretty_printer (value_type (val),
-                                       value_contents_for_printing (val),
-                                       value_embedded_offset (val),
-                                       value_address (val),
-                                       stream, 0,
-                                       val, options, current_language);
+      int r
+       = apply_ext_lang_val_pretty_printer (value_type (val),
+                                            value_contents_for_printing (val),
+                                            value_embedded_offset (val),
+                                            value_address (val),
+                                            stream, 0,
+                                            val, options, current_language);
 
       if (r)
        return;
@@ -1726,7 +1727,7 @@ val_print_array_elements (struct type *type,
 
 /* Read LEN bytes of target memory at address MEMADDR, placing the
    results in GDB's memory at MYADDR.  Returns a count of the bytes
-   actually read, and optionally a target_xfer_error value in the
+   actually read, and optionally a target_xfer_status value in the
    location pointed to by ERRPTR if ERRPTR is non-null.  */
 
 /* FIXME: cagney/1999-10-14: Only used by val_print_string.  Can this
@@ -1770,7 +1771,7 @@ partial_memory_read (CORE_ADDR memaddr, gdb_byte *myaddr,
    each.  Fetch at most FETCHLIMIT characters.  BUFFER will be set to a newly
    allocated buffer containing the string, which the caller is responsible to
    free, and BYTES_READ will be set to the number of bytes read.  Returns 0 on
-   success, or a target_xfer_error on failure.
+   success, or a target_xfer_status on failure.
 
    If LEN > 0, reads the lesser of LEN or FETCHLIMIT characters
    (including eventual NULs in the middle or end of the string).
@@ -1948,73 +1949,77 @@ print_wchar (gdb_wint_t w, const gdb_byte *orig,
   int need_escape = *need_escapep;
 
   *need_escapep = 0;
-  if (gdb_iswprint (w) && (!need_escape || (!gdb_iswdigit (w)
-                                           && w != LCST ('8')
-                                           && w != LCST ('9'))))
-    {
-      gdb_wchar_t wchar = w;
 
-      if (w == gdb_btowc (quoter) || w == LCST ('\\'))
-       obstack_grow_wstr (output, LCST ("\\"));
-      obstack_grow (output, &wchar, sizeof (gdb_wchar_t));
-    }
-  else
+  /* iswprint implementation on Windows returns 1 for tab character.
+     In order to avoid different printout on this host, we explicitly
+     use wchar_printable function.  */
+  switch (w)
     {
-      switch (w)
+      case LCST ('\a'):
+       obstack_grow_wstr (output, LCST ("\\a"));
+       break;
+      case LCST ('\b'):
+       obstack_grow_wstr (output, LCST ("\\b"));
+       break;
+      case LCST ('\f'):
+       obstack_grow_wstr (output, LCST ("\\f"));
+       break;
+      case LCST ('\n'):
+       obstack_grow_wstr (output, LCST ("\\n"));
+       break;
+      case LCST ('\r'):
+       obstack_grow_wstr (output, LCST ("\\r"));
+       break;
+      case LCST ('\t'):
+       obstack_grow_wstr (output, LCST ("\\t"));
+       break;
+      case LCST ('\v'):
+       obstack_grow_wstr (output, LCST ("\\v"));
+       break;
+      default:
        {
-       case LCST ('\a'):
-         obstack_grow_wstr (output, LCST ("\\a"));
-         break;
-       case LCST ('\b'):
-         obstack_grow_wstr (output, LCST ("\\b"));
-         break;
-       case LCST ('\f'):
-         obstack_grow_wstr (output, LCST ("\\f"));
-         break;
-       case LCST ('\n'):
-         obstack_grow_wstr (output, LCST ("\\n"));
-         break;
-       case LCST ('\r'):
-         obstack_grow_wstr (output, LCST ("\\r"));
-         break;
-       case LCST ('\t'):
-         obstack_grow_wstr (output, LCST ("\\t"));
-         break;
-       case LCST ('\v'):
-         obstack_grow_wstr (output, LCST ("\\v"));
-         break;
-       default:
-         {
-           int i;
+         if (wchar_printable (w) && (!need_escape || (!gdb_iswdigit (w)
+                                                      && w != LCST ('8')
+                                                      && w != LCST ('9'))))
+           {
+             gdb_wchar_t wchar = w;
 
-           for (i = 0; i + width <= orig_len; i += width)
-             {
-               char octal[30];
-               ULONGEST value;
+             if (w == gdb_btowc (quoter) || w == LCST ('\\'))
+               obstack_grow_wstr (output, LCST ("\\"));
+             obstack_grow (output, &wchar, sizeof (gdb_wchar_t));
+           }
+         else
+           {
+             int i;
+
+             for (i = 0; i + width <= orig_len; i += width)
+               {
+                 char octal[30];
+                 ULONGEST value;
 
-               value = extract_unsigned_integer (&orig[i], width,
+                 value = extract_unsigned_integer (&orig[i], width,
                                                  byte_order);
-               /* If the value fits in 3 octal digits, print it that
-                  way.  Otherwise, print it as a hex escape.  */
-               if (value <= 0777)
-                 xsnprintf (octal, sizeof (octal), "\\%.3o",
-                            (int) (value & 0777));
-               else
-                 xsnprintf (octal, sizeof (octal), "\\x%lx", (long) value);
-               append_string_as_wide (octal, output);
-             }
-           /* If we somehow have extra bytes, print them now.  */
-           while (i < orig_len)
-             {
-               char octal[5];
+                 /* If the value fits in 3 octal digits, print it that
+                    way.  Otherwise, print it as a hex escape.  */
+                 if (value <= 0777)
+                   xsnprintf (octal, sizeof (octal), "\\%.3o",
+                              (int) (value & 0777));
+                 else
+                   xsnprintf (octal, sizeof (octal), "\\x%lx", (long) value);
+                 append_string_as_wide (octal, output);
+               }
+             /* If we somehow have extra bytes, print them now.  */
+             while (i < orig_len)
+               {
+                 char octal[5];
 
-               xsnprintf (octal, sizeof (octal), "\\%.3o", orig[i] & 0xff);
-               append_string_as_wide (octal, output);
-               ++i;
-             }
+                 xsnprintf (octal, sizeof (octal), "\\%.3o", orig[i] & 0xff);
+                 append_string_as_wide (octal, output);
+                 ++i;
+               }
 
-           *need_escapep = 1;
-         }
+             *need_escapep = 1;
+           }
          break;
        }
     }
This page took 0.027403 seconds and 4 git commands to generate.