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 makemode.c qe.h dired.c ht...


From: Charlie Gordon
Subject: [Qemacs-commit] qemacs bufed.c hex.c makemode.c qe.h dired.c ht...
Date: Sun, 01 Jun 2014 13:55:00 +0000

CVSROOT:        /sources/qemacs
Module name:    qemacs
Changes by:     Charlie Gordon <chqrlie>        14/06/01 13:55:00

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

Log message:
        prepare mode separation (view / syntax / data)
        
        * add fields in EditBuffer struct
        * pass buffer and flags to mode_init functions
        * add default_mode_init function to avoid tests

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/bufed.c?cvsroot=qemacs&r1=1.33&r2=1.34
http://cvs.savannah.gnu.org/viewcvs/qemacs/hex.c?cvsroot=qemacs&r1=1.42&r2=1.43
http://cvs.savannah.gnu.org/viewcvs/qemacs/makemode.c?cvsroot=qemacs&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.h?cvsroot=qemacs&r1=1.179&r2=1.180
http://cvs.savannah.gnu.org/viewcvs/qemacs/dired.c?cvsroot=qemacs&r1=1.49&r2=1.50
http://cvs.savannah.gnu.org/viewcvs/qemacs/html.c?cvsroot=qemacs&r1=1.33&r2=1.34
http://cvs.savannah.gnu.org/viewcvs/qemacs/markdown.c?cvsroot=qemacs&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/qemacs/shell.c?cvsroot=qemacs&r1=1.92&r2=1.93
http://cvs.savannah.gnu.org/viewcvs/qemacs/docbook.c?cvsroot=qemacs&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/qemacs/image.c?cvsroot=qemacs&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/qemacs/mpeg.c?cvsroot=qemacs&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/qemacs/unihex.c?cvsroot=qemacs&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/qemacs/extras.c?cvsroot=qemacs&r1=1.33&r2=1.34
http://cvs.savannah.gnu.org/viewcvs/qemacs/list.c?cvsroot=qemacs&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.c?cvsroot=qemacs&r1=1.181&r2=1.182
http://cvs.savannah.gnu.org/viewcvs/qemacs/video.c?cvsroot=qemacs&r1=1.19&r2=1.20

Patches:
Index: bufed.c
===================================================================
RCS file: /sources/qemacs/qemacs/bufed.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -b -r1.33 -r1.34
--- bufed.c     30 May 2014 17:18:12 -0000      1.33
+++ bufed.c     1 Jun 2014 13:54:58 -0000       1.34
@@ -93,11 +93,11 @@
             if (b1->saved_mode) {
                 mode_name = b1->saved_mode->name;
             } else
-            if (b1->saved_data) {
-                mode_name = b1->saved_data->mode->name;
-            } else
             if (b1->default_mode) {
                 mode_name = b1->default_mode->name;
+            } else
+            if (b1->syntax_mode) {
+                mode_name = b1->syntax_mode->name;
             } else {
                 mode_name = "none";
             }
@@ -337,13 +337,13 @@
         b->close = NULL;
 }
 
-static int bufed_mode_init(EditState *s)
+static int bufed_mode_init(EditState *s, EditBuffer *b, int flags)
 {
     BufedState *bs;
 
-    if (list_mode.mode_init)
-        list_mode.mode_init(s);
+    list_mode.mode_init(s, b, flags);
 
+    if (s) {
     if (s->b->priv_data) {
         bs = s->b->priv_data;
         if (bs->signature != &bufed_signature)
@@ -359,6 +359,7 @@
         s->b->priv_data = bs;
         s->b->close = bufed_close;
     }
+    }
     return 0;
 }
 

Index: hex.c
===================================================================
RCS file: /sources/qemacs/qemacs/hex.c,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -b -r1.42 -r1.43
--- hex.c       29 May 2014 10:26:13 -0000      1.42
+++ hex.c       1 Jun 2014 13:54:58 -0000       1.43
@@ -153,8 +153,9 @@
     CMD_DEF_END,
 };
 
-static int binary_mode_init(EditState *s)
+static int binary_mode_init(EditState *s, EditBuffer *b, int flags)
 {
+    if (s) {
     QEFont *font;
     QEStyleDef style;
     int num_width;
@@ -173,17 +174,20 @@
     s->insert = 0;
     s->hex_mode = 0;
     s->wrap = WRAP_TRUNCATE;
+    }
     return 0;
 }
 
-static int hex_mode_init(EditState *s)
+static int hex_mode_init(EditState *s, EditBuffer *b, int flags)
 {
+    if (s) {
     s->disp_width = 16;
     s->hex_mode = 1;
     s->unihex_mode = 0;
     s->hex_nibble = 0;
     s->insert = 0;
     s->wrap = WRAP_TRUNCATE;
+    }
     return 0;
 }
 

Index: makemode.c
===================================================================
RCS file: /sources/qemacs/qemacs/makemode.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- makemode.c  30 May 2014 17:18:14 -0000      1.21
+++ makemode.c  1 Jun 2014 13:54:58 -0000       1.22
@@ -163,10 +163,12 @@
     return 1;
 }
 
-static int makefile_mode_init(EditState *s)
+static int makefile_mode_init(EditState *s, EditBuffer *b, int flags)
 {
+    if (s) {
     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.179
retrieving revision 1.180
diff -u -b -r1.179 -r1.180
--- qe.h        30 May 2014 22:57:35 -0000      1.179
+++ qe.h        1 Jun 2014 13:54:58 -0000       1.180
@@ -853,11 +853,22 @@
     int map_handle;
 
     /* buffer data type (default is raw) */
+    ModeDef *data_mode;
     EditBufferDataType *data_type;
     void *data_data;    /* associated buffer data, used if data_type != 
raw_data */
     void *priv_data;    /* buffer polling & private data */
     void (*close)(EditBuffer *);    /* called when deleting the buffer */
 
+    /* buffer syntax or major mode */
+    ModeDef *syntax_mode;
+    ColorizeFunc colorize_func; /* line colorization function */
+    unsigned short *colorize_states; /* state before line n, one per line */
+    int colorize_nb_lines;
+    int colorize_nb_valid_lines;
+    /* maximum valid offset, INT_MAX if not modified. Needed to
+     * invalidate 'colorize_states' */
+    int colorize_max_valid_offset;
+
     /* charset handling */
     CharsetDecodeState charset_state;
     QECharset *charset;
@@ -1225,8 +1236,8 @@
 
     /* return the percentage of confidence */
     int (*mode_probe)(ModeDef *, ModeProbeData *);
-    int (*mode_init)(EditState *);
-    void (*mode_close)(EditState *);
+    int (*mode_init)(EditState *s, EditBuffer *b, int flags);
+    void (*mode_close)(EditState *s);
 
     /* low level display functions (must be NULL to use text related
        functions)*/
@@ -1661,7 +1672,6 @@
 
 /* minibuffer & status */
 
-void less_mode_init(void);
 void minibuffer_init(void);
 
 extern CmdDef minibuffer_commands[];

Index: dired.c
===================================================================
RCS file: /sources/qemacs/qemacs/dired.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -b -r1.49 -r1.50
--- dired.c     30 May 2014 17:18:14 -0000      1.49
+++ dired.c     1 Jun 2014 13:54:58 -0000       1.50
@@ -961,12 +961,13 @@
         b->close = NULL;
 }
 
-static int dired_mode_init(EditState *s)
+static int dired_mode_init(EditState *s, EditBuffer *b, int flags)
 {
     DiredState *ds;
 
-    list_mode.mode_init(s);
+    list_mode.mode_init(s, b, flags);
 
+    if (s) {
     if (s->b->priv_data) {
         ds = s->b->priv_data;
         if (ds->signature != &dired_signature)
@@ -991,6 +992,7 @@
     /* XXX: File system charset should be detected automatically */
     /* XXX: If file system charset is not utf8, eb_printf will fail */
     eb_set_charset(s->b, &charset_utf8, s->b->eol_type);
+    }
 
     return 0;
 }

Index: html.c
===================================================================
RCS file: /sources/qemacs/qemacs/html.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -b -r1.33 -r1.34
--- html.c      29 May 2014 10:26:14 -0000      1.33
+++ html.c      1 Jun 2014 13:54:59 -0000       1.34
@@ -778,6 +778,7 @@
 int gxml_mode_init(EditState *s,
                    int flags, const char *default_stylesheet)
 {
+    if (s) {
     HTMLState *hs = s->mode_data;
 
     /* XXX: unregister callbacks for s->offset and s->top_offset ? */
@@ -788,10 +789,11 @@
     load_default_style_sheet(hs, default_stylesheet, flags);
 
     hs->up_to_date = 0;
+    }
     return 0;
 }
 
-static int html_mode_init(EditState *s)
+static int html_mode_init(EditState *s, EditBuffer *b, int flags)
 {
     return gxml_mode_init(s, XML_HTML | XML_HTML_SYNTAX | XML_IGNORE_CASE,
                           html_style);

Index: markdown.c
===================================================================
RCS file: /sources/qemacs/qemacs/markdown.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- markdown.c  30 May 2014 17:18:15 -0000      1.16
+++ markdown.c  1 Jun 2014 13:54:59 -0000       1.17
@@ -800,11 +800,13 @@
     CMD_DEF_END,
 };
 
-static int mkd_mode_init(EditState *s)
+static int mkd_mode_init(EditState *s, EditBuffer *b, int flags)
 {
+    if (s) {
     s->b->tab_width = 4;
     s->indent_tabs_mode = 0;
     s->wrap = WRAP_WORD;
+    }
     return 0;
 }
 

Index: shell.c
===================================================================
RCS file: /sources/qemacs/qemacs/shell.c,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -b -r1.92 -r1.93
--- shell.c     29 May 2014 10:26:15 -0000      1.92
+++ shell.c     1 Jun 2014 13:54:59 -0000       1.93
@@ -1952,8 +1952,9 @@
     return 0;
 }
 
-static int shell_mode_init(EditState *e)
+static int shell_mode_init(EditState *e, EditBuffer *b, int flags)
 {
+    if (e) {
     ShellState *s;
 
     if (!(s = shell_get_state(e, 1)))
@@ -1963,13 +1964,16 @@
     e->wrap = WRAP_TRUNCATE;
     if (s->shell_flags & SF_INTERACTIVE)
         e->interactive = 1;
+    }
     return 0;
 }
 
-static int pager_mode_init(EditState *e)
+static int pager_mode_init(EditState *e, EditBuffer *b, int flags)
 {
+    if (e) {
     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.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- docbook.c   29 May 2014 10:26:15 -0000      1.11
+++ docbook.c   1 Jun 2014 13:54:59 -0000       1.12
@@ -32,7 +32,7 @@
     return 0;
 }
 
-static int docbook_mode_init(EditState *s)
+static int docbook_mode_init(EditState *s, EditBuffer *b, int flags)
 {
     return gxml_mode_init(s, XML_IGNORE_CASE | XML_DOCBOOK, docbook_style);
 }

Index: image.c
===================================================================
RCS file: /sources/qemacs/qemacs/image.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- image.c     29 May 2014 10:26:15 -0000      1.27
+++ image.c     1 Jun 2014 13:54:59 -0000       1.28
@@ -484,8 +484,9 @@
     edit_invalidate(s);
 }
 
-static int image_mode_init(EditState *s)
+static int image_mode_init(EditState *s, EditBuffer *b, int flags)
 {
+    if (s) {
     ImageState *is = s->mode_data;
     ImageBuffer *ib = s->b->data;
 
@@ -500,6 +501,7 @@
     update_bmp(s);
 
     eb_add_callback(s->b, image_callback, s, 1);
+    }
     return 0;
 }
 

Index: mpeg.c
===================================================================
RCS file: /sources/qemacs/qemacs/mpeg.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- mpeg.c      29 May 2014 10:26:15 -0000      1.9
+++ mpeg.c      1 Jun 2014 13:54:59 -0000       1.10
@@ -138,12 +138,13 @@
     return offset;
 }
 
-static int mpeg_mode_init(EditState *s)
+static int mpeg_mode_init(EditState *s, EditBuffer *b, int flags)
 {
+    if (s) {
     s->hex_mode = 1;
     s->hex_nibble = 0;
     s->wrap = WRAP_TRUNCATE;
-
+    }
     return 0;
 }
 

Index: unihex.c
===================================================================
RCS file: /sources/qemacs/qemacs/unihex.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- unihex.c    29 May 2014 10:26:16 -0000      1.27
+++ unihex.c    1 Jun 2014 13:54:59 -0000       1.28
@@ -26,8 +26,9 @@
     UNIHEX_STYLE_DUMP   = QE_STYLE_FUNCTION,
 };
 
-static int unihex_mode_init(EditState *s)
+static int unihex_mode_init(EditState *s, EditBuffer *b, int flags)
 {
+    if (s) {
     int c, maxc, offset, max_offset;
 
     /* unihex mode is incompatible with EOL_DOS eol type */
@@ -48,6 +49,7 @@
     s->hex_nibble = 0;
     s->insert = 0;
     s->wrap = WRAP_TRUNCATE;
+    }
     return 0;
 }
 

Index: extras.c
===================================================================
RCS file: /sources/qemacs/qemacs/extras.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -b -r1.33 -r1.34
--- extras.c    30 May 2014 22:57:34 -0000      1.33
+++ extras.c    1 Jun 2014 13:55:00 -0000       1.34
@@ -640,7 +640,7 @@
         }
         if (!inherit || !mode)
             break;
-        /* Should move up to base mode */
+        /* Move up to base mode */
         mode = mode->fallback;
     }
     return out->len;
@@ -947,6 +947,11 @@
 #if 0
     eb_printf(b1, "      probed: %d\n", b->probed);
 #endif
+
+    if (b->data_mode)
+        eb_printf(b1, "   data_mode: %s\n", b->data_mode->name);
+    if (b->syntax_mode)
+        eb_printf(b1, " syntax_mode: %s\n", b->syntax_mode->name);
     if (s->mode)
         eb_printf(b1, "     s->mode: %s\n", s->mode->name);
     if (b->default_mode)

Index: list.c
===================================================================
RCS file: /sources/qemacs/qemacs/list.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- list.c      29 May 2014 10:26:14 -0000      1.16
+++ list.c      1 Jun 2014 13:55:00 -0000       1.17
@@ -88,10 +88,12 @@
         text_move_up_down(s, 1);
 }
 
-static int list_mode_init(EditState *s)
+static int list_mode_init(EditState *s, EditBuffer *b, int flags)
 {
+    if (s) {
     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.181
retrieving revision 1.182
diff -u -b -r1.181 -r1.182
--- qe.c        31 May 2014 00:26:26 -0000      1.181
+++ qe.c        1 Jun 2014 13:55:00 -0000       1.182
@@ -79,6 +79,8 @@
 
 /* mode handling */
 
+static int default_mode_init(EditState *s, EditBuffer *b, int flags) { return 
0; }
+
 static int generic_mode_probe(ModeDef *mode, ModeProbeData *p)
 {
     if (mode->extensions) {
@@ -138,6 +140,8 @@
     }
 
     /* add missing functions */
+    if (!m->mode_init)
+        m->mode_init = default_mode_init;
     if (!m->display)
         m->display = generic_text_display;
     if (!m->data_type)
@@ -1852,8 +1856,7 @@
 
         /* init mode */
         generic_mode_init(s, saved_data);
-        if (m->mode_init)
-            m->mode_init(s);
+        m->mode_init(s, s->b, MODEF_VIEW);
         if (m->colorize_func)
             set_colorize_func(s, m->colorize_func);
         /* modify offset_top so that its value is correct */
@@ -5507,7 +5510,7 @@
     do_refresh(s);
 }
 
-void less_mode_init(void)
+static void less_init(void)
 {
     /* less mode inherits from text mode */
     memcpy(&less_mode, &text_mode, sizeof(ModeDef));
@@ -7999,7 +8002,7 @@
     register_completion("color", color_completion);
 
     minibuffer_init();
-    less_mode_init();
+    less_init();
 
     /* init all external modules in link order */
     init_all_modules();

Index: video.c
===================================================================
RCS file: /sources/qemacs/qemacs/video.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- video.c     29 May 2014 10:26:14 -0000      1.19
+++ video.c     1 Jun 2014 13:55:00 -0000       1.20
@@ -789,8 +789,9 @@
     is->paused = !is->paused;
 }
 
-static int video_mode_init(EditState *s)
+static int video_mode_init(EditState *s, EditBuffer *b, int flags)
 {
+    if (s) {
     VideoState *is = s->mode_data;
     QEmacsState *qs = s->qe_state;
     int err, video_playing;
@@ -825,6 +826,7 @@
     err = pthread_create(&is->parse_tid, NULL, decode_thread, s);
     if (err != 0)
         return -1;
+    }
     return 0;
 }
 



reply via email to

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