qemacs-commit
[Top][All Lists]
Advanced

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

[Qemacs-commit] qemacs bufed.c htmlsrc.c makemode.c perl.c xml....


From: Charlie Gordon
Subject: [Qemacs-commit] qemacs bufed.c htmlsrc.c makemode.c perl.c xml....
Date: Thu, 29 May 2014 18:29:16 +0000

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

Modified files:
        .              : bufed.c htmlsrc.c makemode.c perl.c xml.c 
                         clang.c latex-mode.c markdown.c qe.c 
                         extra-modes.c lisp.c orgmode.c script.c 

Log message:
        simplify mode definitions
        
        * assume text mode primitives for MODEF_SYNTAX modes
        * initialize mode structures inline instead of cloning text_mode

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/bufed.c?cvsroot=qemacs&r1=1.31&r2=1.32
http://cvs.savannah.gnu.org/viewcvs/qemacs/htmlsrc.c?cvsroot=qemacs&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/qemacs/makemode.c?cvsroot=qemacs&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/qemacs/perl.c?cvsroot=qemacs&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/qemacs/xml.c?cvsroot=qemacs&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/qemacs/clang.c?cvsroot=qemacs&r1=1.71&r2=1.72
http://cvs.savannah.gnu.org/viewcvs/qemacs/latex-mode.c?cvsroot=qemacs&r1=1.48&r2=1.49
http://cvs.savannah.gnu.org/viewcvs/qemacs/markdown.c?cvsroot=qemacs&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.c?cvsroot=qemacs&r1=1.177&r2=1.178
http://cvs.savannah.gnu.org/viewcvs/qemacs/extra-modes.c?cvsroot=qemacs&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/qemacs/lisp.c?cvsroot=qemacs&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/qemacs/orgmode.c?cvsroot=qemacs&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/qemacs/script.c?cvsroot=qemacs&r1=1.14&r2=1.15

Patches:
Index: bufed.c
===================================================================
RCS file: /sources/qemacs/qemacs/bufed.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- bufed.c     29 May 2014 10:26:13 -0000      1.31
+++ bufed.c     29 May 2014 18:29:14 -0000      1.32
@@ -89,7 +89,6 @@
         if (b1) {
             char path[MAX_FILENAME_SIZE];
             const char *mode_name;
-            EditState *e;
 
             if (b1->saved_mode) {
                 mode_name = b1->saved_mode->name;
@@ -100,6 +99,8 @@
             if (b1->default_mode) {
                 mode_name = b1->default_mode->name;
             } else {
+                EditState *e;
+
                 mode_name = "none";
                 for (e = qs->first_window; e != NULL; e = e->next_window) {
                     if (e->b == b1) {

Index: htmlsrc.c
===================================================================
RCS file: /sources/qemacs/qemacs/htmlsrc.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- htmlsrc.c   27 May 2014 22:59:49 -0000      1.19
+++ htmlsrc.c   29 May 2014 18:29:14 -0000      1.20
@@ -415,17 +415,15 @@
     CMD_DEF_END,
 };
 
-static ModeDef htmlsrc_mode;
+static ModeDef htmlsrc_mode = {
+    .name = "html-src",
+    .extensions = "html|htm|asp|aspx|shtml|hta|htp|phtml|php",
+    .mode_probe = htmlsrc_mode_probe,
+    .colorize_func = htmlsrc_colorize_line,
+};
 
 static int htmlsrc_init(void)
 {
-    /* html-src mode is almost like the text mode, so we copy and patch it */
-    memcpy(&htmlsrc_mode, &text_mode, sizeof(ModeDef));
-    htmlsrc_mode.name = "html-src";
-    htmlsrc_mode.extensions = "html|htm|asp|aspx|shtml|hta|htp|phtml|php";
-    htmlsrc_mode.mode_probe = htmlsrc_mode_probe;
-    htmlsrc_mode.colorize_func = htmlsrc_colorize_line;
-
     qe_register_mode(&htmlsrc_mode, MODEF_SYNTAX);
     qe_register_cmd_table(htmlsrc_commands, &htmlsrc_mode);
 

Index: makemode.c
===================================================================
RCS file: /sources/qemacs/qemacs/makemode.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- makemode.c  29 May 2014 10:26:14 -0000      1.19
+++ makemode.c  29 May 2014 18:29:14 -0000      1.20
@@ -163,8 +163,6 @@
     return 1;
 }
 
-static ModeDef makefile_mode;
-
 static int makefile_mode_init(EditState *s)
 {
     s->b->tab_width = 8;
@@ -172,16 +170,16 @@
     return 0;
 }
 
+static ModeDef makefile_mode = {
+    .name = "Makefile",
+    .extensions = "mak|make|mk",
+    .mode_probe = makefile_mode_probe,
+    .mode_init = makefile_mode_init,
+    .colorize_func = makefile_colorize_line,
+};
+
 static int makefile_init(void)
 {
-    /* Makefile mode is almost like the text mode, so we copy and patch it */
-    memcpy(&makefile_mode, &text_mode, sizeof(ModeDef));
-    makefile_mode.name = "Makefile";
-    makefile_mode.extensions = "mak|make|mk";
-    makefile_mode.mode_probe = makefile_mode_probe;
-    makefile_mode.mode_init = makefile_mode_init;
-    makefile_mode.colorize_func = makefile_colorize_line;
-
     qe_register_mode(&makefile_mode, MODEF_SYNTAX);
 
     return 0;

Index: perl.c
===================================================================
RCS file: /sources/qemacs/qemacs/perl.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- perl.c      27 May 2014 12:05:54 -0000      1.19
+++ perl.c      29 May 2014 18:29:14 -0000      1.20
@@ -351,17 +351,15 @@
     return 1;
 }
 
-static ModeDef perl_mode;
+static ModeDef perl_mode = {
+    .name = "Perl",
+    .extensions = "pl|perl|pm",
+    .mode_probe = perl_mode_probe,
+    .colorize_func = perl_colorize_line,
+};
 
 static int perl_init(void)
 {
-    /* perl mode is almost like the text mode, so we copy and patch it */
-    memcpy(&perl_mode, &text_mode, sizeof(ModeDef));
-    perl_mode.name = "Perl";
-    perl_mode.extensions = "pl|perl|pm";
-    perl_mode.mode_probe = perl_mode_probe;
-    perl_mode.colorize_func = perl_colorize_line;
-
     qe_register_mode(&perl_mode, MODEF_SYNTAX);
 
     return 0;

Index: xml.c
===================================================================
RCS file: /sources/qemacs/qemacs/xml.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- xml.c       27 May 2014 12:05:56 -0000      1.21
+++ xml.c       29 May 2014 18:29:15 -0000      1.22
@@ -191,16 +191,14 @@
     return 80; /* leave some room for more specific XML parser */
 }
 
-ModeDef xml_mode;
+ModeDef xml_mode = {
+    .name = "xml",
+    .mode_probe = xml_mode_probe,
+    .colorize_func = xml_colorize_line,
+};
 
 static int xml_init(void)
 {
-    /* xml mode is almost like the text mode, so we copy and patch it */
-    memcpy(&xml_mode, &text_mode, sizeof(ModeDef));
-    xml_mode.name = "xml";
-    xml_mode.mode_probe = xml_mode_probe;
-    xml_mode.colorize_func = xml_colorize_line;
-
     qe_register_mode(&xml_mode, MODEF_SYNTAX);
 
     return 0;

Index: clang.c
===================================================================
RCS file: /sources/qemacs/qemacs/clang.c,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -b -r1.71 -r1.72
--- clang.c     29 May 2014 10:26:14 -0000      1.71
+++ clang.c     29 May 2014 18:29:15 -0000      1.72
@@ -1486,22 +1486,20 @@
     CMD_DEF_END,
 };
 
-static ModeDef c_mode;
+static ModeDef c_mode = {
+    .name = "C",
+    .extensions = c_mode_extensions,
+    .mode_probe = c_mode_probe,
+    .mode_init = c_mode_init,
+    .colorize_func = c_colorize_line,
+    .indent_func = c_indent_line,
+    .auto_indent = 1,
+};
 
 static int c_init(void)
 {
     const char *p;
 
-    /* C mode is almost like the text mode, so we copy and patch it */
-    memcpy(&c_mode, &text_mode, sizeof(ModeDef));
-    c_mode.name = "C";
-    c_mode.extensions = c_mode_extensions;
-    c_mode.mode_probe = c_mode_probe;
-    c_mode.mode_init = c_mode_init;
-    c_mode.colorize_func = c_colorize_line;
-    c_mode.indent_func = c_indent_line;
-    c_mode.auto_indent = 1;
-
     qe_register_mode(&c_mode, MODEF_SYNTAX);
     qe_register_cmd_table(c_commands, &c_mode);
     for (p = ";:#&|"; *p; p++) {

Index: latex-mode.c
===================================================================
RCS file: /sources/qemacs/qemacs/latex-mode.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -b -r1.48 -r1.49
--- latex-mode.c        27 May 2014 12:05:52 -0000      1.48
+++ latex-mode.c        29 May 2014 18:29:15 -0000      1.49
@@ -325,17 +325,15 @@
     CMD_DEF_END,
 };
 
-static ModeDef latex_mode;
+static ModeDef latex_mode = {
+    .name = "LaTeX",
+    .extensions = "tex|but",
+    .mode_probe = latex_mode_probe,
+    .colorize_func = latex_colorize_line,
+};
 
 static int latex_init(void)
 {
-    /* LaTeX mode is almost like the text mode, so we copy and patch it */
-    memcpy(&latex_mode, &text_mode, sizeof(ModeDef));
-    latex_mode.name = "LaTeX";
-    latex_mode.extensions = "tex|but";
-    latex_mode.mode_probe = latex_mode_probe;
-    latex_mode.colorize_func = latex_colorize_line;
-
     qe_register_mode(&latex_mode, MODEF_SYNTAX);
     qe_register_cmd_table(latex_commands, &latex_mode);
     register_completion("latex", latex_completion);

Index: markdown.c
===================================================================
RCS file: /sources/qemacs/qemacs/markdown.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- markdown.c  29 May 2014 10:26:15 -0000      1.14
+++ markdown.c  29 May 2014 18:29:15 -0000      1.15
@@ -20,8 +20,6 @@
 
 #include "qe.h"
 
-ModeDef mkd_mode;
-
 enum {
     /* TODO: define specific styles */
     MKD_STYLE_HEADING1    = QE_STYLE_FUNCTION,
@@ -810,14 +808,15 @@
     return 0;
 }
 
+ModeDef mkd_mode = {
+    .name = "markdown",
+    .extensions = "mkd|md",
+    .mode_init = mkd_mode_init,
+    .colorize_func = mkd_colorize_line,
+};
+
 static int mkd_init(void)
 {
-    memcpy(&mkd_mode, &text_mode, sizeof(ModeDef));
-    mkd_mode.name = "markdown";
-    mkd_mode.extensions = "mkd|md";
-    mkd_mode.mode_init = mkd_mode_init;
-    mkd_mode.colorize_func = mkd_colorize_line;
-
     qe_register_mode(&mkd_mode, MODEF_SYNTAX);
     qe_register_cmd_table(mkd_commands, &mkd_mode);
 

Index: qe.c
===================================================================
RCS file: /sources/qemacs/qemacs/qe.c,v
retrieving revision 1.177
retrieving revision 1.178
diff -u -b -r1.177 -r1.178
--- qe.c        29 May 2014 10:26:14 -0000      1.177
+++ qe.c        29 May 2014 18:29:15 -0000      1.178
@@ -95,12 +95,6 @@
 
     m->flags |= flags;
 
-    if (m->flags & MODEF_SYNTAX) {
-        /* if no syntax probing function, use extension matcher */
-        if (!m->mode_probe && m->extensions)
-            m->mode_probe = generic_mode_probe;
-    }
-
     /* register mode in mode list (at end) */
     for (p = &qs->first_mode;; p = &(*p)->next) {
         if (*p == m)
@@ -112,6 +106,34 @@
         }
     }
 
+    if (m->flags & MODEF_SYNTAX) {
+        /* if no syntax probing function, use extension matcher */
+        if (!m->mode_probe && m->extensions)
+            m->mode_probe = generic_mode_probe;
+
+        /* default to text handling */
+        if (!m->text_display)
+            m->text_display = text_display;
+        if (!m->text_backward_offset)
+            m->text_backward_offset = text_backward_offset;
+        if (!m->move_up_down)
+            m->move_up_down = text_move_up_down;
+        if (!m->move_left_right)
+            m->move_left_right = text_move_left_right_visual;
+        if (!m->move_bol)
+            m->move_bol = text_move_bol;
+        if (!m->move_eol)
+            m->move_eol = text_move_eol;
+        if (!m->move_word_left_right)
+            m->move_word_left_right = text_move_word_left_right;
+        if (!m->scroll_up_down)
+            m->scroll_up_down = text_scroll_up_down;
+        if (!m->write_char)
+            m->write_char = text_write_char;
+        if (!m->mouse_goto)
+            m->mouse_goto = text_mouse_goto;
+    }
+
     /* add missing functions */
     if (!m->display)
         m->display = generic_text_display;

Index: extra-modes.c
===================================================================
RCS file: /sources/qemacs/qemacs/extra-modes.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- extra-modes.c       27 May 2014 23:43:59 -0000      1.24
+++ extra-modes.c       29 May 2014 18:29:15 -0000      1.25
@@ -178,16 +178,14 @@
     cp->colorize_state = colstate;
 }
 
-static ModeDef asm_mode;
+static ModeDef asm_mode = {
+    .name = "asm",
+    .extensions = "asm|asi|cod",
+    .colorize_func = asm_colorize_line,
+};
 
 static int asm_init(void)
 {
-    /* asm mode is almost like the text mode, so we copy and patch it */
-    memcpy(&asm_mode, &text_mode, sizeof(ModeDef));
-    asm_mode.name = "asm";
-    asm_mode.extensions = "asm|asi|cod";
-    asm_mode.colorize_func = asm_colorize_line;
-
     qe_register_mode(&asm_mode, MODEF_SYNTAX);
 
     return 0;
@@ -295,16 +293,14 @@
     }
 }
 
-static ModeDef basic_mode;
+static ModeDef basic_mode = {
+    .name = "Basic",
+    .extensions = "bas|frm|mst|vb|vbs",
+    .colorize_func = basic_colorize_line,
+};
 
 static int basic_init(void)
 {
-    /* basic mode is almost like the text mode, so we copy and patch it */
-    memcpy(&basic_mode, &text_mode, sizeof(ModeDef));
-    basic_mode.name = "Basic";
-    basic_mode.extensions = "bas|frm|mst|vb|vbs";
-    basic_mode.colorize_func = basic_colorize_line;
-
     qe_register_mode(&basic_mode, MODEF_SYNTAX);
 
     return 0;
@@ -545,16 +541,14 @@
     cp->colorize_state = (state << 4) | (level & 15);
 }
 
-static ModeDef vim_mode;
+static ModeDef vim_mode = {
+    .name = "Vim",
+    .extensions = "vim",
+    .colorize_func = vim_colorize_line,
+};
 
 static int vim_init(void)
 {
-    /* vim mode is almost like the text mode, so we copy and patch it */
-    memcpy(&vim_mode, &text_mode, sizeof(ModeDef));
-    vim_mode.name = "Vim";
-    vim_mode.extensions = "vim";
-    vim_mode.colorize_func = vim_colorize_line;
-
     qe_register_mode(&vim_mode, MODEF_SYNTAX);
 
     return 0;
@@ -728,16 +722,14 @@
     cp->colorize_state = colstate;
 }
 
-static ModeDef pascal_mode;
+static ModeDef pascal_mode = {
+    .name = "Pascal",
+    .extensions = "pas",
+    .colorize_func = pascal_colorize_line,
+};
 
 static int pascal_init(void)
 {
-    /* pascal mode is almost like the text mode, so we copy and patch it */
-    memcpy(&pascal_mode, &text_mode, sizeof(ModeDef));
-    pascal_mode.name = "Pascal";
-    pascal_mode.extensions = "pas";
-    pascal_mode.colorize_func = pascal_colorize_line;
-
     qe_register_mode(&pascal_mode, MODEF_SYNTAX);
 
     return 0;
@@ -857,17 +849,15 @@
     return 1;
 }
 
-static ModeDef ini_mode;
+static ModeDef ini_mode = {
+    .name = "ini",
+    .extensions = "ini|inf|INI|INF",
+    .mode_probe = ini_mode_probe,
+    .colorize_func = ini_colorize_line,
+};
 
 static int ini_init(void)
 {
-    /* ini mode is almost like the text mode, so we copy and patch it */
-    memcpy(&ini_mode, &text_mode, sizeof(ModeDef));
-    ini_mode.name = "ini";
-    ini_mode.extensions = "ini|inf|INI|INF";
-    ini_mode.mode_probe = ini_mode_probe;
-    ini_mode.colorize_func = ini_colorize_line;
-
     qe_register_mode(&ini_mode, MODEF_SYNTAX);
 
     return 0;
@@ -915,17 +905,15 @@
     return 1;
 }
 
-static ModeDef sharp_mode;
+static ModeDef sharp_mode = {
+    .name = "sharp",
+    .extensions = "txt",
+    .mode_probe = sharp_mode_probe,
+    .colorize_func = sharp_colorize_line,
+};
 
 static int sharp_init(void)
 {
-    /* sharp txt mode is almost like the text mode, so we copy and patch it */
-    memcpy(&sharp_mode, &text_mode, sizeof(ModeDef));
-    sharp_mode.name = "sharp";
-    sharp_mode.extensions = "txt";
-    sharp_mode.mode_probe = sharp_mode_probe;
-    sharp_mode.colorize_func = sharp_colorize_line;
-
     qe_register_mode(&sharp_mode, MODEF_SYNTAX);
 
     return 0;
@@ -1039,17 +1027,15 @@
     return 1;
 }
 
-static ModeDef ps_mode;
+static ModeDef ps_mode = {
+    .name = "Postscript",
+    .extensions = "ps|ms|eps",
+    .mode_probe = ps_mode_probe,
+    .colorize_func = ps_colorize_line,
+};
 
 static int ps_init(void)
 {
-    /* Poscript mode is almost like the text mode, so we copy and patch it */
-    memcpy(&ps_mode, &text_mode, sizeof(ModeDef));
-    ps_mode.name = "Postscript";
-    ps_mode.extensions = "ps|ms|eps";
-    ps_mode.mode_probe = ps_mode_probe;
-    ps_mode.colorize_func = ps_colorize_line;
-
     qe_register_mode(&ps_mode, MODEF_SYNTAX);
 
     return 0;
@@ -1137,16 +1123,14 @@
     cp->colorize_state = state;
 }
 
-static ModeDef sql_mode;
+static ModeDef sql_mode = {
+    .name = "SQL",
+    .extensions = "sql|mysql|sqlite|sqlplus",
+    .colorize_func = sql_colorize_line,
+};
 
 static int sql_init(void)
 {
-    /* sql mode is almost like the text mode, so we copy and patch it */
-    memcpy(&sql_mode, &text_mode, sizeof(ModeDef));
-    sql_mode.name = "SQL";
-    sql_mode.extensions = "sql|mysql|sqlite|sqlplus";
-    sql_mode.colorize_func = sql_colorize_line;
-
     qe_register_mode(&sql_mode, MODEF_SYNTAX);
 
     return 0;
@@ -1318,16 +1302,14 @@
     cp->colorize_state = state;
 }
 
-static ModeDef lua_mode;
+static ModeDef lua_mode = {
+    .name = "Lua",
+    .extensions = "lua",
+    .colorize_func = lua_colorize_line,
+};
 
 static int lua_init(void)
 {
-    /* lua mode is almost like the text mode, so we copy and patch it */
-    memcpy(&lua_mode, &text_mode, sizeof(ModeDef));
-    lua_mode.name = "Lua";
-    lua_mode.extensions = "lua";
-    lua_mode.colorize_func = lua_colorize_line;
-
     qe_register_mode(&lua_mode, MODEF_SYNTAX);
 
     return 0;
@@ -1585,16 +1567,14 @@
     cp->colorize_state = state;
 }
 
-static ModeDef julia_mode;
+static ModeDef julia_mode = {
+    .name = "Julia",
+    .extensions = "jl",
+    .colorize_func = julia_colorize_line,
+};
 
 static int julia_init(void)
 {
-    /* julia mode is almost like the text mode, so we copy and patch it */
-    memcpy(&julia_mode, &text_mode, sizeof(ModeDef));
-    julia_mode.name = "Julia";
-    julia_mode.extensions = "jl";
-    julia_mode.colorize_func = julia_colorize_line;
-
     qe_register_mode(&julia_mode, MODEF_SYNTAX);
 
     return 0;
@@ -1795,16 +1775,14 @@
     cp->colorize_state = state;
 }
 
-static ModeDef haskell_mode;
+static ModeDef haskell_mode = {
+    .name = "Haskell",
+    .extensions = "hs|haskell",
+    .colorize_func = haskell_colorize_line,
+};
 
 static int haskell_init(void)
 {
-    /* haskell mode is almost like the text mode, so we copy and patch it */
-    memcpy(&haskell_mode, &text_mode, sizeof(ModeDef));
-    haskell_mode.name = "Haskell";
-    haskell_mode.extensions = "hs|haskell";
-    haskell_mode.colorize_func = haskell_colorize_line;
-
     qe_register_mode(&haskell_mode, MODEF_SYNTAX);
 
     return 0;
@@ -2015,16 +1993,14 @@
     cp->colorize_state = state;
 }
 
-static ModeDef python_mode;
+static ModeDef python_mode = {
+    .name = "Python",
+    .extensions = "py|pyt",
+    .colorize_func = python_colorize_line,
+};
 
 static int python_init(void)
 {
-    /* python mode is almost like the text mode, so we copy and patch it */
-    memcpy(&python_mode, &text_mode, sizeof(ModeDef));
-    python_mode.name = "Python";
-    python_mode.extensions = "py|pyt";
-    python_mode.colorize_func = python_colorize_line;
-
     qe_register_mode(&python_mode, MODEF_SYNTAX);
 
     return 0;
@@ -2495,17 +2471,15 @@
     return 1;
 }
 
-static ModeDef ruby_mode;
+static ModeDef ruby_mode = {
+    .name = "Ruby",
+    .extensions = "rb|gemspec",
+    .mode_probe = ruby_mode_probe,
+    .colorize_func = ruby_colorize_line,
+};
 
 static int ruby_init(void)
 {
-    /* ruby mode is almost like the text mode, so we copy and patch it */
-    memcpy(&ruby_mode, &text_mode, sizeof(ModeDef));
-    ruby_mode.name = "Ruby";
-    ruby_mode.extensions = "rb|gemspec";
-    ruby_mode.mode_probe = ruby_mode_probe;
-    ruby_mode.colorize_func = ruby_colorize_line;
-
     qe_register_mode(&ruby_mode, MODEF_SYNTAX);
 
     return 0;
@@ -2712,16 +2686,14 @@
     cp->colorize_state = colstate;
 }
 
-static ModeDef ocaml_mode;
+static ModeDef ocaml_mode = {
+    .name = "Ocaml",
+    .extensions = "ml|mli|mll|mly",
+    .colorize_func = ocaml_colorize_line,
+};
 
 static int ocaml_init(void)
 {
-    /* ocaml mode is almost like the text mode, so we copy and patch it */
-    memcpy(&ocaml_mode, &text_mode, sizeof(ModeDef));
-    ocaml_mode.name = "Ocaml";
-    ocaml_mode.extensions = "ml|mli|mll|mly";
-    ocaml_mode.colorize_func = ocaml_colorize_line;
-
     qe_register_mode(&ocaml_mode, MODEF_SYNTAX);
 
     return 0;

Index: lisp.c
===================================================================
RCS file: /sources/qemacs/qemacs/lisp.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- lisp.c      29 May 2014 10:26:15 -0000      1.15
+++ lisp.c      29 May 2014 18:29:15 -0000      1.16
@@ -367,18 +367,16 @@
     return 0;
 }
 
-ModeDef lisp_mode;
+ModeDef lisp_mode = {
+    .name = "Lisp",
+    .extensions = "ll|li|lh|lo|lm|lisp|el|scm|ss|rkt|rktd",
+    .mode_probe = lisp_mode_probe,
+    .mode_init = lisp_mode_init,
+    .colorize_func = lisp_colorize_line,
+};
 
 static int lisp_init(void)
 {
-    /* lisp mode is almost like the text mode, so we copy and patch it */
-    memcpy(&lisp_mode, &text_mode, sizeof(ModeDef));
-    lisp_mode.name = "Lisp";
-    lisp_mode.extensions = "ll|li|lh|lo|lm|lisp|el|scm|ss|rkt|rktd";
-    lisp_mode.mode_probe = lisp_mode_probe;
-    lisp_mode.mode_init = lisp_mode_init;
-    lisp_mode.colorize_func = lisp_colorize_line;
-
     qe_register_mode(&lisp_mode, MODEF_SYNTAX);
 
     return 0;

Index: orgmode.c
===================================================================
RCS file: /sources/qemacs/qemacs/orgmode.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- orgmode.c   27 May 2014 15:50:47 -0000      1.21
+++ orgmode.c   29 May 2014 18:29:16 -0000      1.22
@@ -22,8 +22,6 @@
 
 #include "qe.h"
 
-ModeDef org_mode;
-
 enum {
     IN_ORG_BLOCK = 0x80,
     IN_ORG_LISP  = 0x40,
@@ -734,13 +732,14 @@
     CMD_DEF_END,
 };
 
+ModeDef org_mode = {
+    .name = "org",
+    .extensions = "org",
+    .colorize_func = org_colorize_line,
+};
+
 static int org_init(void)
 {
-    memcpy(&org_mode, &text_mode, sizeof(ModeDef));
-    org_mode.name = "org";
-    org_mode.extensions = "org";
-    org_mode.colorize_func = org_colorize_line;
-
     qe_register_mode(&org_mode, MODEF_SYNTAX);
     qe_register_cmd_table(org_commands, &org_mode);
 

Index: script.c
===================================================================
RCS file: /sources/qemacs/qemacs/script.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- script.c    27 May 2014 22:59:48 -0000      1.14
+++ script.c    29 May 2014 18:29:16 -0000      1.15
@@ -119,17 +119,15 @@
     return 1;
 }
 
-static ModeDef script_mode;
+static ModeDef script_mode = {
+    .name = "Shell-script",
+    .extensions = "sh|bash|csh|ksh|zsh",
+    .mode_probe = script_mode_probe,
+    .colorize_func = script_colorize_line,
+};
 
 static int script_init(void)
 {
-    /* Shell-script mode is almost like the text mode, so we copy and patch it 
*/
-    memcpy(&script_mode, &text_mode, sizeof(ModeDef));
-    script_mode.name = "Shell-script";
-    script_mode.extensions = "sh|bash|csh|ksh|zsh";
-    script_mode.mode_probe = script_mode_probe;
-    script_mode.colorize_func = script_colorize_line;
-
     qe_register_mode(&script_mode, MODEF_SYNTAX);
 
     return 0;



reply via email to

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