qemacs-commit
[Top][All Lists]
Advanced

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

[Qemacs-commit] qemacs bufed.c hex.c list.c qe.c video.c clang....


From: Charlie Gordon
Subject: [Qemacs-commit] qemacs bufed.c hex.c list.c qe.c video.c clang....
Date: Thu, 29 May 2014 10:26:16 +0000

CVSROOT:        /sources/qemacs
Module name:    qemacs
Changes by:     Charlie Gordon <chqrlie>        14/05/29 10:26:16

Modified files:
        .              : bufed.c hex.c list.c qe.c video.c clang.c 
                         html.c makemode.c qe.h dired.c image.c 
                         markdown.c shell.c docbook.c lisp.c mpeg.c 
                         unihex.c 

Log message:
        simplify mode init/close
        
        * always regsister callbacks on s->top and s->top_offset
        * handle saved_data generically, remove window callback
          this will be replaced with view history mecanism.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/bufed.c?cvsroot=qemacs&r1=1.30&r2=1.31
http://cvs.savannah.gnu.org/viewcvs/qemacs/hex.c?cvsroot=qemacs&r1=1.41&r2=1.42
http://cvs.savannah.gnu.org/viewcvs/qemacs/list.c?cvsroot=qemacs&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.c?cvsroot=qemacs&r1=1.176&r2=1.177
http://cvs.savannah.gnu.org/viewcvs/qemacs/video.c?cvsroot=qemacs&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/qemacs/clang.c?cvsroot=qemacs&r1=1.70&r2=1.71
http://cvs.savannah.gnu.org/viewcvs/qemacs/html.c?cvsroot=qemacs&r1=1.32&r2=1.33
http://cvs.savannah.gnu.org/viewcvs/qemacs/makemode.c?cvsroot=qemacs&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.h?cvsroot=qemacs&r1=1.176&r2=1.177
http://cvs.savannah.gnu.org/viewcvs/qemacs/dired.c?cvsroot=qemacs&r1=1.47&r2=1.48
http://cvs.savannah.gnu.org/viewcvs/qemacs/image.c?cvsroot=qemacs&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/qemacs/markdown.c?cvsroot=qemacs&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/qemacs/shell.c?cvsroot=qemacs&r1=1.91&r2=1.92
http://cvs.savannah.gnu.org/viewcvs/qemacs/docbook.c?cvsroot=qemacs&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/qemacs/lisp.c?cvsroot=qemacs&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/qemacs/mpeg.c?cvsroot=qemacs&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/qemacs/unihex.c?cvsroot=qemacs&r1=1.26&r2=1.27

Patches:
Index: bufed.c
===================================================================
RCS file: /sources/qemacs/qemacs/bufed.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- bufed.c     27 May 2014 12:05:52 -0000      1.30
+++ bufed.c     29 May 2014 10:26:13 -0000      1.31
@@ -346,11 +346,12 @@
         b->close = NULL;
 }
 
-static int bufed_mode_init(EditState *s, ModeSavedData *saved_data)
+static int bufed_mode_init(EditState *s)
 {
     BufedState *bs;
 
-    list_mode.mode_init(s, saved_data);
+    if (list_mode.mode_init)
+        list_mode.mode_init(s);
 
     if (s->b->priv_data) {
         bs = s->b->priv_data;

Index: hex.c
===================================================================
RCS file: /sources/qemacs/qemacs/hex.c,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -b -r1.41 -r1.42
--- hex.c       29 May 2014 06:32:21 -0000      1.41
+++ hex.c       29 May 2014 10:26:13 -0000      1.42
@@ -153,14 +153,12 @@
     CMD_DEF_END,
 };
 
-static int binary_mode_init(EditState *s, ModeSavedData *saved_data)
+static int binary_mode_init(EditState *s)
 {
     QEFont *font;
     QEStyleDef style;
     int num_width;
 
-    text_mode_init(s, saved_data);
-
     /* get typical number width */
     get_style(s, &style, s->default_style);
     font = select_font(s->screen, style.font_style, style.font_size);
@@ -178,10 +176,8 @@
     return 0;
 }
 
-static int hex_mode_init(EditState *s, ModeSavedData *saved_data)
+static int hex_mode_init(EditState *s)
 {
-    text_mode_init(s, saved_data);
-
     s->disp_width = 16;
     s->hex_mode = 1;
     s->unihex_mode = 0;

Index: list.c
===================================================================
RCS file: /sources/qemacs/qemacs/list.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- list.c      27 May 2014 12:05:54 -0000      1.15
+++ list.c      29 May 2014 10:26:14 -0000      1.16
@@ -88,10 +88,8 @@
         text_move_up_down(s, 1);
 }
 
-static int list_mode_init(EditState *s, ModeSavedData *saved_data)
+static int list_mode_init(EditState *s)
 {
-    text_mode_init(s, saved_data);
-
     s->wrap = WRAP_TRUNCATE;
     s->get_colorized_line = list_get_colorized_line;
     return 0;

Index: qe.c
===================================================================
RCS file: /sources/qemacs/qemacs/qe.c,v
retrieving revision 1.176
retrieving revision 1.177
diff -u -b -r1.176 -r1.177
--- qe.c        27 May 2014 22:59:49 -0000      1.176
+++ qe.c        29 May 2014 10:26:14 -0000      1.177
@@ -58,7 +58,7 @@
 static StringArray *get_history(const char *name);
 static void qe_key_process(int key);
 
-ModeSavedData *generic_mode_save_data(EditState *s);
+static ModeSavedData *generic_mode_save_data(EditState *s);
 static void generic_text_display(EditState *s);
 static void display1(DisplayState *s);
 #ifndef CONFIG_TINY
@@ -113,14 +113,8 @@
     }
 
     /* add missing functions */
-    if (!m->mode_init)
-        m->mode_init = text_mode_init;
-    if (!m->mode_close)
-        m->mode_close = text_mode_close;
     if (!m->display)
         m->display = generic_text_display;
-    if (!m->mode_save_data)
-        m->mode_save_data = generic_mode_save_data;
     if (!m->data_type)
         m->data_type = &raw_data_type;
     if (!m->get_mode_line)
@@ -1760,11 +1754,13 @@
         /* save mode data if necessary */
         s->interactive = 0;
         if (!saved_data) {
-            saved_data = s->mode->mode_save_data(s);
+            saved_data = generic_mode_save_data(s);
             if (saved_data)
                 saved_data_allocated = 1;
         }
+        if (s->mode->mode_close)
         s->mode->mode_close(s);
+        generic_mode_close(s);
         qe_free(&s->mode_data);
         s->mode = NULL;
         set_colorize_func(s, NULL);
@@ -1832,7 +1828,9 @@
         s->mode_flags = 0;
 
         /* init mode */
-        m->mode_init(s, saved_data);
+        generic_mode_init(s, saved_data);
+        if (m->mode_init)
+            m->mode_init(s);
         if (m->colorize_func)
             set_colorize_func(s, m->colorize_func);
         /* modify offset_top so that its value is correct */
@@ -4744,7 +4742,7 @@
             if (!(b1->flags & BF_TRANSIENT)) {
                 qe_free(&b1->saved_data);
                 b1->saved_mode = s->mode;
-                b1->saved_data = s->mode->mode_save_data(s);
+                b1->saved_data = generic_mode_save_data(s);
             }
         }
         /* now we can close the mode */
@@ -4766,7 +4764,7 @@
         }
         if (e) {
             mode = e->mode;
-            saved_data = e->mode->mode_save_data(e);
+            saved_data = generic_mode_save_data(e);
             saved_data_allocated = 1;
         } else {
             mode = b->saved_mode;
@@ -7468,7 +7466,7 @@
         return 20;
 }
 
-int text_mode_init(EditState *s, ModeSavedData *saved_data)
+int generic_mode_init(EditState *s, ModeSavedData *saved_data)
 {
     if (saved_data) {
         memcpy(s, saved_data->generic_data, SAVED_DATA_SIZE);
@@ -7502,7 +7500,7 @@
     return saved_data;
 }
 
-void text_mode_close(EditState *s)
+void generic_mode_close(EditState *s)
 {
     /* free all callbacks or associated buffer data */
     set_colorize_func(s, NULL);
@@ -7513,8 +7511,6 @@
 ModeDef text_mode = {
     .name = "text",
     .mode_probe = text_mode_probe,
-    .mode_init = text_mode_init,
-    .mode_close = text_mode_close,
 
     .text_display = text_display,
     .text_backward_offset = text_backward_offset,

Index: video.c
===================================================================
RCS file: /sources/qemacs/qemacs/video.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- video.c     27 May 2014 12:05:55 -0000      1.18
+++ video.c     29 May 2014 10:26:14 -0000      1.19
@@ -789,7 +789,7 @@
     is->paused = !is->paused;
 }
 
-static int video_mode_init(EditState *s, ModeSavedData *saved_data)
+static int video_mode_init(EditState *s)
 {
     VideoState *is = s->mode_data;
     QEmacsState *qs = s->qe_state;

Index: clang.c
===================================================================
RCS file: /sources/qemacs/qemacs/clang.c,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -b -r1.70 -r1.71
--- clang.c     27 May 2014 22:59:48 -0000      1.70
+++ clang.c     29 May 2014 10:26:14 -0000      1.71
@@ -1340,12 +1340,10 @@
     return 1;
 }
 
-static int c_mode_init(EditState *s, ModeSavedData *saved_data)
+static int c_mode_init(EditState *s)
 {
     const char *base = get_basename(s->b->filename);
 
-    text_mode.mode_init(s, saved_data);
-
     /* Select C like flavor */
     if (match_extension(base, "c|h|i|C|H|I")) {
         s->mode_flags = CLANG_C | CLANG_CC;

Index: html.c
===================================================================
RCS file: /sources/qemacs/qemacs/html.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -b -r1.32 -r1.33
--- html.c      27 May 2014 12:05:54 -0000      1.32
+++ html.c      29 May 2014 10:26:14 -0000      1.33
@@ -776,22 +776,11 @@
 /* graphical XML/CSS mode init. is_html is TRUE to tell that specific HTML
    quirks are needed in the parser. */
 int gxml_mode_init(EditState *s,
-                   ModeSavedData *saved_data,
                    int flags, const char *default_stylesheet)
 {
     HTMLState *hs = s->mode_data;
 
-    /* XXX: should register callbacks for s->offset and s->top_offset? */
-
-    if (saved_data) {
-        memcpy(s, saved_data->generic_data, SAVED_DATA_SIZE);
-    } else {
-        memset(s, 0, SAVED_DATA_SIZE);
-        s->insert = 1;
-        s->indent_size = 4;
-        s->default_style = QE_STYLE_DEFAULT;
-        s->wrap = WRAP_LINE;
-    }
+    /* XXX: unregister callbacks for s->offset and s->top_offset ? */
 
     eb_add_callback(s->b, html_callback, s, 0);
     hs->parse_flags = flags;
@@ -802,10 +791,9 @@
     return 0;
 }
 
-static int html_mode_init(EditState *s, ModeSavedData *saved_data)
+static int html_mode_init(EditState *s)
 {
-    return gxml_mode_init(s, saved_data,
-                          XML_HTML | XML_HTML_SYNTAX | XML_IGNORE_CASE,
+    return gxml_mode_init(s, XML_HTML | XML_HTML_SYNTAX | XML_IGNORE_CASE,
                           html_style);
 }
 

Index: makemode.c
===================================================================
RCS file: /sources/qemacs/qemacs/makemode.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- makemode.c  27 May 2014 12:05:55 -0000      1.18
+++ makemode.c  29 May 2014 10:26:14 -0000      1.19
@@ -165,9 +165,8 @@
 
 static ModeDef makefile_mode;
 
-static int makefile_mode_init(EditState *s, ModeSavedData *saved_data)
+static int makefile_mode_init(EditState *s)
 {
-    text_mode_init(s, saved_data);
     s->b->tab_width = 8;
     s->indent_tabs_mode = 1;
     return 0;

Index: qe.h
===================================================================
RCS file: /sources/qemacs/qemacs/qe.h,v
retrieving revision 1.176
retrieving revision 1.177
diff -u -b -r1.176 -r1.177
--- qe.h        27 May 2014 12:05:56 -0000      1.176
+++ qe.h        29 May 2014 10:26:14 -0000      1.177
@@ -1132,7 +1132,7 @@
 
     EditBuffer *b;
 
-    /* state before line n, one byte per line */
+    /* state before line n, one short per line */
     unsigned short *colorize_states;
     int colorize_nb_lines;
     int colorize_nb_valid_lines;
@@ -1225,11 +1225,8 @@
 
     /* return the percentage of confidence */
     int (*mode_probe)(ModeDef *, ModeProbeData *);
-    int (*mode_init)(EditState *, ModeSavedData *);
+    int (*mode_init)(EditState *);
     void (*mode_close)(EditState *);
-    /* save the internal state of the mode so that it can be opened
-       again in the same state */
-    ModeSavedData *(*mode_save_data)(EditState *s);
 
     /* low level display functions (must be NULL to use text related
        functions)*/
@@ -1765,8 +1762,8 @@
 
 extern ModeDef text_mode;
 
-int text_mode_init(EditState *s, ModeSavedData *saved_data);
-void text_mode_close(EditState *s);
+int generic_mode_init(EditState *s, ModeSavedData *saved_data);
+void generic_mode_close(EditState *s);
 int text_backward_offset(EditState *s, int offset);
 int text_display(EditState *s, DisplayState *ds, int offset);
 
@@ -2042,7 +2039,6 @@
 extern ModeDef html_mode;
 
 int gxml_mode_init(EditState *s,
-                   ModeSavedData *saved_data,
                    int is_html, const char *default_stylesheet);
 
 /* extra-modes.c */

Index: dired.c
===================================================================
RCS file: /sources/qemacs/qemacs/dired.c,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- dired.c     27 May 2014 12:05:54 -0000      1.47
+++ dired.c     29 May 2014 10:26:15 -0000      1.48
@@ -961,11 +961,11 @@
         b->close = NULL;
 }
 
-static int dired_mode_init(EditState *s, ModeSavedData *saved_data)
+static int dired_mode_init(EditState *s)
 {
     DiredState *ds;
 
-    list_mode.mode_init(s, saved_data);
+    list_mode.mode_init(s);
 
     if (s->b->priv_data) {
         ds = s->b->priv_data;

Index: image.c
===================================================================
RCS file: /sources/qemacs/qemacs/image.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- image.c     27 May 2014 12:05:55 -0000      1.26
+++ image.c     29 May 2014 10:26:15 -0000      1.27
@@ -484,7 +484,7 @@
     edit_invalidate(s);
 }
 
-static int image_mode_init(EditState *s, ModeSavedData *saved_data)
+static int image_mode_init(EditState *s)
 {
     ImageState *is = s->mode_data;
     ImageBuffer *ib = s->b->data;

Index: markdown.c
===================================================================
RCS file: /sources/qemacs/qemacs/markdown.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- markdown.c  27 May 2014 15:50:47 -0000      1.13
+++ markdown.c  29 May 2014 10:26:15 -0000      1.14
@@ -802,9 +802,8 @@
     CMD_DEF_END,
 };
 
-static int mkd_mode_init(EditState *s, ModeSavedData *saved_data)
+static int mkd_mode_init(EditState *s)
 {
-    text_mode_init(s, saved_data);
     s->b->tab_width = 4;
     s->indent_tabs_mode = 0;
     s->wrap = WRAP_WORD;

Index: shell.c
===================================================================
RCS file: /sources/qemacs/qemacs/shell.c,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -b -r1.91 -r1.92
--- shell.c     27 May 2014 12:05:53 -0000      1.91
+++ shell.c     29 May 2014 10:26:15 -0000      1.92
@@ -1952,14 +1952,13 @@
     return 0;
 }
 
-static int shell_mode_init(EditState *e, ModeSavedData *saved_data)
+static int shell_mode_init(EditState *e)
 {
     ShellState *s;
 
     if (!(s = shell_get_state(e, 1)))
         return -1;
 
-    text_mode_init(e, saved_data);
     e->b->tab_width = 8;
     e->wrap = WRAP_TRUNCATE;
     if (s->shell_flags & SF_INTERACTIVE)
@@ -1967,9 +1966,8 @@
     return 0;
 }
 
-static int pager_mode_init(EditState *e, ModeSavedData *saved_data)
+static int pager_mode_init(EditState *e)
 {
-    text_mode_init(e, saved_data);
     e->b->tab_width = 8;
     e->wrap = WRAP_TRUNCATE;
     return 0;

Index: docbook.c
===================================================================
RCS file: /sources/qemacs/qemacs/docbook.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- docbook.c   27 May 2014 12:05:55 -0000      1.10
+++ docbook.c   29 May 2014 10:26:15 -0000      1.11
@@ -32,10 +32,9 @@
     return 0;
 }
 
-static int docbook_mode_init(EditState *s, ModeSavedData *saved_data)
+static int docbook_mode_init(EditState *s)
 {
-    return gxml_mode_init(s, saved_data, XML_IGNORE_CASE | XML_DOCBOOK,
-                          docbook_style);
+    return gxml_mode_init(s, XML_IGNORE_CASE | XML_DOCBOOK, docbook_style);
 }
 
 static ModeDef docbook_mode;

Index: lisp.c
===================================================================
RCS file: /sources/qemacs/qemacs/lisp.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- lisp.c      27 May 2014 12:05:53 -0000      1.14
+++ lisp.c      29 May 2014 10:26:15 -0000      1.15
@@ -348,10 +348,8 @@
     return 1;
 }
 
-static int lisp_mode_init(EditState *s, ModeSavedData *saved_data)
+static int lisp_mode_init(EditState *s)
 {
-    text_mode.mode_init(s, saved_data);
-
     /* select lisp flavor */
     if (match_extension(s->b->filename, "el")
     ||  strstart(get_basename(s->b->filename), ".emacs", NULL)) {

Index: mpeg.c
===================================================================
RCS file: /sources/qemacs/qemacs/mpeg.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- mpeg.c      27 May 2014 12:05:52 -0000      1.8
+++ mpeg.c      29 May 2014 10:26:15 -0000      1.9
@@ -138,10 +138,8 @@
     return offset;
 }
 
-static int mpeg_mode_init(EditState *s, ModeSavedData *saved_data)
+static int mpeg_mode_init(EditState *s)
 {
-    text_mode_init(s, saved_data);
-
     s->hex_mode = 1;
     s->hex_nibble = 0;
     s->wrap = WRAP_TRUNCATE;

Index: unihex.c
===================================================================
RCS file: /sources/qemacs/qemacs/unihex.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- unihex.c    29 May 2014 06:32:22 -0000      1.26
+++ unihex.c    29 May 2014 10:26:16 -0000      1.27
@@ -26,12 +26,10 @@
     UNIHEX_STYLE_DUMP   = QE_STYLE_FUNCTION,
 };
 
-static int unihex_mode_init(EditState *s, ModeSavedData *saved_data)
+static int unihex_mode_init(EditState *s)
 {
     int c, maxc, offset, max_offset;
 
-    text_mode_init(s, saved_data);
-
     /* unihex mode is incompatible with EOL_DOS eol type */
     eb_set_charset(s->b, s->b->charset, EOL_UNIX);
 



reply via email to

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