qemacs-commit
[Top][All Lists]
Advanced

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

[Qemacs-commit] qemacs clang.c htmlsrc.c makemode.c qe.h xml.c ...


From: Charlie Gordon
Subject: [Qemacs-commit] qemacs clang.c htmlsrc.c makemode.c qe.h xml.c ...
Date: Sun, 05 Jan 2014 23:42:55 +0000

CVSROOT:        /sources/qemacs
Module name:    qemacs
Changes by:     Charlie Gordon <chqrlie>        14/01/05 23:42:55

Modified files:
        .              : clang.c htmlsrc.c makemode.c qe.h xml.c 
                         docbook.c latex-mode.c perl.c script.c html.c 
                         lisp.c qe.c tty.c 

Log message:
        simplified editing modes
        
        * added colorize_func in ModeDef struct
        * removed mode_init functions for most language modes
        * other small improvements in mode_probe functions
        * no need for get_basename in mode_probe functions

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/clang.c?cvsroot=qemacs&r1=1.41&r2=1.42
http://cvs.savannah.gnu.org/viewcvs/qemacs/htmlsrc.c?cvsroot=qemacs&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/qemacs/makemode.c?cvsroot=qemacs&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.h?cvsroot=qemacs&r1=1.107&r2=1.108
http://cvs.savannah.gnu.org/viewcvs/qemacs/xml.c?cvsroot=qemacs&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/qemacs/docbook.c?cvsroot=qemacs&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/qemacs/latex-mode.c?cvsroot=qemacs&r1=1.34&r2=1.35
http://cvs.savannah.gnu.org/viewcvs/qemacs/perl.c?cvsroot=qemacs&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/qemacs/script.c?cvsroot=qemacs&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/qemacs/html.c?cvsroot=qemacs&r1=1.22&r2=1.23
http://cvs.savannah.gnu.org/viewcvs/qemacs/lisp.c?cvsroot=qemacs&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.c?cvsroot=qemacs&r1=1.109&r2=1.110
http://cvs.savannah.gnu.org/viewcvs/qemacs/tty.c?cvsroot=qemacs&r1=1.52&r2=1.53

Patches:
Index: clang.c
===================================================================
RCS file: /sources/qemacs/qemacs/clang.c,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -b -r1.41 -r1.42
--- clang.c     4 Jan 2014 17:27:00 -0000       1.41
+++ clang.c     5 Jan 2014 23:42:54 -0000       1.42
@@ -601,7 +601,7 @@
 
 static int c_mode_probe(ModeDef *mode, ModeProbeData *p)
 {
-    /* currently, only use the file extension */
+    /* trust the file extension */
     if (match_extension(p->filename, mode->extensions))
         return 80;
 
@@ -613,6 +613,7 @@
     if (p->buf[0] == '/' && p->buf[1] == '/')
         return 50;
 
+    if (p->buf[0] == '#') {
     /* same for file starting with '#include' */
     if (strstart(cs8(p->buf), "#include", NULL))
         return 50;
@@ -620,21 +621,11 @@
     /* same for file starting with '#pragma' as in #pragma once */
     if (strstart(cs8(p->buf), "#pragma", NULL))
         return 50;
+    }
 
     return 0;
 }
 
-static int c_mode_init(EditState *s, ModeSavedData *saved_data)
-{
-    int ret;
-
-    ret = text_mode_init(s, saved_data);
-    if (ret)
-        return ret;
-    set_colorize_func(s, c_colorize_line);
-    return ret;
-}
-
 /* C mode specific commands */
 static CmdDef c_commands[] = {
     CMD2( KEY_CTRL('i'), KEY_NONE,
@@ -662,7 +653,7 @@
     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;
 
     qe_register_mode(&c_mode);
     qe_register_cmd_table(c_commands, &c_mode);

Index: htmlsrc.c
===================================================================
RCS file: /sources/qemacs/qemacs/htmlsrc.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- htmlsrc.c   4 Jan 2014 17:27:25 -0000       1.5
+++ htmlsrc.c   5 Jan 2014 23:42:54 -0000       1.6
@@ -251,7 +251,7 @@
 
 static int htmlsrc_mode_probe(ModeDef *mode, ModeProbeData *p)
 {
-    const char *buf = (const char*)p->buf;
+    const char *buf = cs8(p->buf);
 
     /* first check file extension */
     if (match_extension(p->filename, mode->extensions))
@@ -269,17 +269,6 @@
     return 0;
 }
 
-static int htmlsrc_mode_init(EditState *s, ModeSavedData *saved_data)
-{
-    int ret;
-
-    ret = text_mode_init(s, saved_data);
-    if (ret)
-        return ret;
-    set_colorize_func(s, htmlsrc_colorize_line);
-    return ret;
-}
-
 /* specific htmlsrc commands */
 /* CG: need move / kill by tag level */
 static CmdDef htmlsrc_commands[] = {
@@ -295,7 +284,7 @@
     htmlsrc_mode.name = "html-src";
     htmlsrc_mode.extensions = "html|htm|asp|shtml|hta|htp|phtml";
     htmlsrc_mode.mode_probe = htmlsrc_mode_probe;
-    htmlsrc_mode.mode_init = htmlsrc_mode_init;
+    htmlsrc_mode.colorize_func = htmlsrc_colorize_line;
 
     qe_register_mode(&htmlsrc_mode);
     qe_register_cmd_table(htmlsrc_commands, &htmlsrc_mode);

Index: makemode.c
===================================================================
RCS file: /sources/qemacs/qemacs/makemode.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- makemode.c  4 Jan 2014 17:28:34 -0000       1.6
+++ makemode.c  5 Jan 2014 23:42:54 -0000       1.7
@@ -146,27 +146,14 @@
 
 static int makefile_mode_probe(ModeDef *mode, ModeProbeData *p)
 {
-    const char *base = get_basename(p->filename);
-
     /* check file name or extension */
-    if (match_extension(base, mode->extensions)
-    ||  stristart(base, "makefile", NULL))
+    if (match_extension(p->filename, mode->extensions)
+    ||  stristart(p->filename, "makefile", NULL))
         return 70;
 
     return 0;
 }
 
-static int makefile_mode_init(EditState *s, ModeSavedData *saved_data)
-{
-    int ret;
-
-    ret = text_mode_init(s, saved_data);
-    if (ret)
-        return ret;
-    set_colorize_func(s, makefile_colorize_line);
-    return ret;
-}
-
 /* specific makefile commands */
 static CmdDef makefile_commands[] = {
     CMD_DEF_END,
@@ -181,7 +168,7 @@
     makefile_mode.name = "Makefile";
     makefile_mode.extensions = "mk|mak";
     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);
     qe_register_cmd_table(makefile_commands, &makefile_mode);

Index: qe.h
===================================================================
RCS file: /sources/qemacs/qemacs/qe.h,v
retrieving revision 1.107
retrieving revision 1.108
diff -u -b -r1.107 -r1.108
--- qe.h        4 Jan 2014 17:32:42 -0000       1.107
+++ qe.h        5 Jan 2014 23:42:54 -0000       1.108
@@ -1083,6 +1083,7 @@
     /* text related functions */
     int (*text_display)(EditState *, DisplayState *, int);
     int (*text_backward_offset)(EditState *, int);
+    ColorizeFunc colorize_func;
 
     /* common functions are defined here */
     /* TODO: Should have single move function with move type and argument */
@@ -1098,6 +1099,7 @@
 
     int mode_flags;
 #define MODEF_NOCMD 0x0001 /* do not register xxx-mode command automatically */
+
     EditBufferDataType *data_type; /* native buffer data type (NULL = raw) */
     int (*get_mode_line)(EditState *s, char *buf, int buf_size); /* return 
mode line */
 
@@ -1324,7 +1326,7 @@
 #define CMD0(key, key_alt, name, func) \
     { key, key_alt, name "\0", { .ES = func }, CMD_ES, 0 },
 #define CMD1(key, key_alt, name, func, val) \
-    { key, key_alt, name "\0v", { .ESi = func }, CMD_ESi, val },
+    { key, key_alt, name "\0" "v", { .ESi = func }, CMD_ESi, val },
 #define CMD_DEF_END \
     { 0, 0, NULL, { NULL }, CMD_void, 0 }
 

Index: xml.c
===================================================================
RCS file: /sources/qemacs/qemacs/xml.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- xml.c       4 Jan 2014 17:28:37 -0000       1.12
+++ xml.c       5 Jan 2014 23:42:54 -0000       1.13
@@ -175,16 +175,6 @@
     return 90; /* leave some room for more specific XML parser */
 }
 
-static int xml_mode_init(EditState *s, ModeSavedData *saved_data)
-{
-    int ret;
-    ret = text_mode_init(s, saved_data);
-    if (ret)
-        return ret;
-    set_colorize_func(s, xml_colorize_line);
-    return 0;
-}
-
 ModeDef xml_mode;
 
 static int xml_init(void)
@@ -193,7 +183,7 @@
     memcpy(&xml_mode, &text_mode, sizeof(ModeDef));
     xml_mode.name = "xml";
     xml_mode.mode_probe = xml_mode_probe;
-    xml_mode.mode_init = xml_mode_init;
+    xml_mode.colorize_func = xml_colorize_line;
 
     qe_register_mode(&xml_mode);
 

Index: docbook.c
===================================================================
RCS file: /sources/qemacs/qemacs/docbook.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- docbook.c   4 Jan 2014 17:27:02 -0000       1.7
+++ docbook.c   5 Jan 2014 23:42:54 -0000       1.8
@@ -27,7 +27,7 @@
         return 0;
 
     /* well, very crude, but it may work OK */
-    if (strstr((const char *)p1->buf, "DocBook"))
+    if (strstr(cs8(p1->buf), "DocBook"))
         return 100;
     return 0;
 }

Index: latex-mode.c
===================================================================
RCS file: /sources/qemacs/qemacs/latex-mode.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -b -r1.34 -r1.35
--- latex-mode.c        4 Jan 2014 17:28:18 -0000       1.34
+++ latex-mode.c        5 Jan 2014 23:42:54 -0000       1.35
@@ -132,17 +132,6 @@
     return 0;
 }
 
-static int latex_mode_init(EditState *s, ModeSavedData *saved_data)
-{
-    int ret;
-
-    ret = text_mode_init(s, saved_data);
-    if (ret)
-        return ret;
-    set_colorize_func(s, latex_colorize_line);
-    return ret;
-}
-
 static void do_tex_insert_quote(EditState *s)
 {
     int offset_bol, len, offset1;
@@ -333,7 +322,7 @@
     latex_mode.name = "LaTeX";
     latex_mode.extensions = "tex|but";
     latex_mode.mode_probe = latex_mode_probe;
-    latex_mode.mode_init = latex_mode_init;
+    latex_mode.colorize_func = latex_colorize_line;
 
     qe_register_mode(&latex_mode);
     qe_register_cmd_table(latex_commands, &latex_mode);

Index: perl.c
===================================================================
RCS file: /sources/qemacs/qemacs/perl.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- perl.c      4 Jan 2014 17:28:35 -0000       1.9
+++ perl.c      5 Jan 2014 23:42:54 -0000       1.10
@@ -341,17 +341,6 @@
     return 0;
 }
 
-static int perl_mode_init(EditState *s, ModeSavedData *saved_data)
-{
-    int ret;
-
-    ret = text_mode_init(s, saved_data);
-    if (ret)
-        return ret;
-    set_colorize_func(s, perl_colorize_line);
-    return ret;
-}
-
 /* specific perl commands */
 static CmdDef perl_commands[] = {
     CMD_DEF_END,
@@ -366,7 +355,7 @@
     perl_mode.name = "Perl";
     perl_mode.extensions = "pl|perl|pm";
     perl_mode.mode_probe = perl_mode_probe;
-    perl_mode.mode_init = perl_mode_init;
+    perl_mode.colorize_func = perl_colorize_line;
 
     qe_register_mode(&perl_mode);
     qe_register_cmd_table(perl_commands, &perl_mode);

Index: script.c
===================================================================
RCS file: /sources/qemacs/qemacs/script.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- script.c    4 Jan 2014 17:28:36 -0000       1.2
+++ script.c    5 Jan 2014 23:42:54 -0000       1.3
@@ -116,17 +116,6 @@
     return 0;
 }
 
-static int script_mode_init(EditState *s, ModeSavedData *saved_data)
-{
-    int ret;
-
-    ret = text_mode_init(s, saved_data);
-    if (ret)
-        return ret;
-    set_colorize_func(s, script_colorize_line);
-    return ret;
-}
-
 /* specific script commands */
 static CmdDef script_commands[] = {
     CMD_DEF_END,
@@ -141,7 +130,7 @@
     script_mode.name = "Shell-script";
     script_mode.extensions = "sh|bash|zsh";
     script_mode.mode_probe = script_mode_probe;
-    script_mode.mode_init = script_mode_init;
+    script_mode.colorize_func = script_colorize_line;
 
     qe_register_mode(&script_mode);
     qe_register_cmd_table(script_commands, &script_mode);

Index: html.c
===================================================================
RCS file: /sources/qemacs/qemacs/html.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- html.c      4 Jan 2014 17:27:04 -0000       1.22
+++ html.c      5 Jan 2014 23:42:55 -0000       1.23
@@ -839,7 +839,7 @@
             break;
         if (c < 32 && (c != '\r' && c != '\n' && c != '\t' && c != '\033'))
             return 0;
-        if (stristart((const char *)p, "<HTML", NULL))
+        if (c == '<' && stristart(cs8(p), "<HTML", NULL))
             score = 100;
         p++;
     }

Index: lisp.c
===================================================================
RCS file: /sources/qemacs/qemacs/lisp.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- lisp.c      4 Jan 2014 17:28:32 -0000       1.2
+++ lisp.c      5 Jan 2014 23:42:55 -0000       1.3
@@ -105,7 +105,7 @@
 
 static int lisp_mode_probe(ModeDef *mode, ModeProbeData *p)
 {
-    /* just check file extension */
+    /* check file name or extension */
     if (match_extension(p->filename, mode->extensions)
     ||  strstart(p->filename, ".emacs", NULL))
         return 80;
@@ -113,17 +113,6 @@
     return 0;
 }
 
-static int lisp_mode_init(EditState *s, ModeSavedData *saved_data)
-{
-    int ret;
-
-    ret = text_mode_init(s, saved_data);
-    if (ret)
-        return ret;
-    set_colorize_func(s, lisp_colorize_line);
-    return ret;
-}
-
 /* specific lisp commands */
 static CmdDef lisp_commands[] = {
     CMD_DEF_END,
@@ -138,7 +127,7 @@
     lisp_mode.name = "Lisp";
     lisp_mode.extensions = "ll|li|lh|lo|lm|lisp|el";
     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);
     qe_register_cmd_table(lisp_commands, &lisp_mode);

Index: qe.c
===================================================================
RCS file: /sources/qemacs/qemacs/qe.c,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -b -r1.109 -r1.110
--- qe.c        5 Jan 2014 12:51:41 -0000       1.109
+++ qe.c        5 Jan 2014 23:42:55 -0000       1.110
@@ -88,6 +88,10 @@
     *p = m;
 
     /* 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)
@@ -1690,6 +1694,8 @@
 
         /* init mode */
         m->mode_init(s, saved_data);
+        if (m->colorize_func)
+            set_colorize_func(s, m->colorize_func);
         /* modify offset_top so that its value is correct */
         if (s->mode->text_backward_offset)
             s->offset_top = s->mode->text_backward_offset(s, s->offset_top);

Index: tty.c
===================================================================
RCS file: /sources/qemacs/qemacs/tty.c,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -b -r1.52 -r1.53
--- tty.c       2 Jan 2014 11:28:30 -0000       1.52
+++ tty.c       5 Jan 2014 23:42:55 -0000       1.53
@@ -396,8 +396,7 @@
     /* charset handling */
     if (s->charset == &charset_utf8) {
         if (ts->utf8_state == 0) {
-            const char *p;
-            p = (const char *)ts->buf;
+            const char *p = cs8(ts->buf);
             ch = utf8_decode(&p);
         } else {
             ts->utf8_state = utf8_length[ts->buf[0]] - 1;



reply via email to

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