]> git.eshelyaron.com Git - emacs.git/commitdiff
(print): Add hash table handling.
authorGerd Moellmann <gerd@gnu.org>
Wed, 21 Jul 1999 21:43:52 +0000 (21:43 +0000)
committerGerd Moellmann <gerd@gnu.org>
Wed, 21 Jul 1999 21:43:52 +0000 (21:43 +0000)
(printchar): Set echo_area_message to nil.
(strout): Ditto.

src/print.c

index 69a3d68f42893adcd26c4acaf700bd0dfcb56bfc..d3a7efc12c90bca556a8947e6c962c5987c81bd8 100644 (file)
@@ -399,6 +399,7 @@ printchar (ch, fun)
        {
          message_log_maybe_newline ();
          echo_area_glyphs = FRAME_MESSAGE_BUF (mini_frame);
+         echo_area_message = Qnil;
          printbufidx = 0;
          echo_area_glyphs_length = 0;
          message_buf_print = 1;
@@ -527,6 +528,7 @@ strout (ptr, size, size_byte, printcharfun, multibyte)
        {
          message_log_maybe_newline ();
          echo_area_glyphs = FRAME_MESSAGE_BUF (mini_frame);
+         echo_area_message = Qnil;
          printbufidx = 0;
          echo_area_glyphs_length = 0;
          message_buf_print = 1;
@@ -1616,6 +1618,26 @@ print (obj, printcharfun, escapeflag)
            }
          PRINTCHAR ('>');
        }
+      else if (HASH_TABLE_P (obj))
+       {
+         struct Lisp_Hash_Table *h = XHASH_TABLE (obj);
+         strout ("#<hash-table", -1, -1, printcharfun, 0);
+         if (SYMBOLP (h->test))
+           {
+             PRINTCHAR (' ');
+             PRINTCHAR ('\'');
+             strout (XSYMBOL (h->test)->name->data, -1, -1, printcharfun, 0);
+             PRINTCHAR (' ');
+             strout (XSYMBOL (h->weak)->name->data, -1, -1, printcharfun, 0);
+             PRINTCHAR (' ');
+             sprintf (buf, "%d/%d", XFASTINT (h->count),
+                      XVECTOR (h->next)->size);
+             strout (buf, -1, -1, printcharfun, 0);
+           }
+         sprintf (buf, " 0x%lx", (unsigned long) h);
+         strout (buf, -1, -1, printcharfun, 0);
+         PRINTCHAR ('>');
+       }
       else if (BUFFERP (obj))
        {
          if (NILP (XBUFFER (obj)->name))