qemacs-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemacs-commit] qemacs extras.c


From: Charlie Gordon
Subject: [Qemacs-commit] qemacs extras.c
Date: Sat, 22 Aug 2015 20:37:49 +0000

CVSROOT:        /sources/qemacs
Module name:    qemacs
Changes by:     Charlie Gordon <chqrlie>        15/08/22 20:37:49

Modified files:
        .              : extras.c 

Log message:
        buffers: added extra information on page layout in describe-buffer

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/extras.c?cvsroot=qemacs&r1=1.35&r2=1.36

Patches:
Index: extras.c
===================================================================
RCS file: /sources/qemacs/qemacs/extras.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -b -r1.35 -r1.36
--- extras.c    11 Aug 2015 17:23:23 -0000      1.35
+++ extras.c    22 Aug 2015 20:37:49 -0000      1.36
@@ -1046,6 +1046,39 @@
         }
     }
 
+    if (b->nb_pages) {
+        Page *p;
+        const u8 *pc;
+        int i, c, n;
+
+        eb_printf(b1, "\nBuffer page layout:\n");
+
+        eb_printf(b1, "    page  size  flags  lines   col  chars  addr\n");
+        for (i = 0, p = b->page_table; i < b->nb_pages && i < 100; i++, p++) {
+            eb_printf(b1, "    %4d  %4d  %5x  %5d  %4d  %5d  %p  |",
+                      i, p->size, p->flags, p->nb_lines, p->col, p->nb_chars, 
p->data);
+            pc = p->data;
+            n = min(p->size, 16);
+            while (n-- > 0) {
+                switch (c = *pc++) {
+                case '\r': c = 'r'; break;
+                case '\n': c = 'n'; break;
+                case '\t': c = 't'; break;
+                case '\\': break;
+                default:
+                    if (c < 32 || c >= 127)
+                        eb_printf(b1, "\\%03o", c);
+                    else
+                        eb_printf(b1, "%c", c);
+                    continue;
+                }
+                eb_printf(b1, "\\%c", c);
+            }
+            eb_printf(b1, "|%s\n", p->size > 16 ? "..." : "");
+        }
+        eb_printf(b1, "\n");
+    }
+
     b1->flags |= BF_READONLY;
     if (show) {
         show_popup(b1);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]