qemacs-commit
[Top][All Lists]
Advanced

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

[Qemacs-commit] qemacs parser.c qe.c qe.h shell.c


From: Charlie Gordon
Subject: [Qemacs-commit] qemacs parser.c qe.c qe.h shell.c
Date: Tue, 13 Oct 2020 03:14:20 -0400 (EDT)

CVSROOT:        /sources/qemacs
Module name:    qemacs
Changes by:     Charlie Gordon <chqrlie>        20/10/13 03:14:20

Modified files:
        .              : parser.c qe.c qe.h shell.c 

Log message:
        scripting issues:
        
        - always pass universal argument as last argument
        - change do_compile_error() accordingly
        - pass universal argument to do_eval_expression()

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/parser.c?cvsroot=qemacs&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.c?cvsroot=qemacs&r1=1.295&r2=1.296
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.h?cvsroot=qemacs&r1=1.276&r2=1.277
http://cvs.savannah.gnu.org/viewcvs/qemacs/shell.c?cvsroot=qemacs&r1=1.140&r2=1.141

Patches:
Index: parser.c
===================================================================
RCS file: /sources/qemacs/qemacs/parser.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- parser.c    9 Oct 2020 00:00:55 -0000       1.10
+++ parser.c    13 Oct 2020 07:14:17 -0000      1.11
@@ -28,6 +28,16 @@
  * displayed as a popup upon start.
  */
 
+typedef struct QEmacsDataSource {
+    const char *filename;
+    FILE *f;
+    EditBuffer *b;
+    const char *str;
+    int line_num;
+    int pos, len;
+    int offset, stop;
+} QEmacsDataSource;
+
 static int expect_token(const char **pp, int tok)
 {
     if (skip_spaces(pp) == tok) {
@@ -43,14 +53,14 @@
                                char *dest, int size)
 {
     const char *p = *pp;
-    int c, delim = *p++;
+    int delim = *p++;
     int res = 0;
     int pos = 0;
 
     for (;;) {
-        /* encoding issues delibarately ignored */
-        c = *p;
-        if (c == '\0') {
+        /* encoding issues deliberately ignored */
+        int c = *p;
+        if (c == '\n' || c == '\0') {
             put_status(s, "Unterminated string");
             res = -1;
             break;
@@ -72,6 +82,7 @@
                 break;
             }
         }
+        /* XXX: silently truncate overlong string constants */
         if (pos < size - 1)
             dest[pos++] = c;
     }
@@ -81,16 +92,6 @@
     return res;
 }
 
-typedef struct QEmacsDataSource {
-    const char *filename;
-    FILE *f;
-    EditBuffer *b;
-    const char *str;
-    int line_num;
-    int pos, len;
-    int offset, stop;
-} QEmacsDataSource;
-
 static char *data_gets(QEmacsDataSource *ds, char *buf, int size)
 {
     if (ds->f) {
@@ -344,21 +345,7 @@
     return 0;
 }
 
-int parse_config_file(EditState *s, const char *filename)
-{
-    QEmacsDataSource ds = { 0 };
-    int res;
-
-    ds.filename = filename;
-    ds.f = fopen(filename, "r");
-    if (!ds.f)
-        return -1;
-    res = qe_parse_script(s, &ds);
-    fclose(ds.f);
-    return res;
-}
-
-void do_eval_expression(EditState *s, const char *expression)
+void do_eval_expression(EditState *s, const char *expression, int argval)
 {
     QEmacsDataSource ds = { 0 };
 
@@ -390,15 +377,28 @@
 
 void do_eval_region(EditState *s)
 {
-    /* deactivate region hilite */
-    s->region_style = 0;
+    s->region_style = 0;  /* deactivate region hilite */
 
     do_eval_buffer_region(s, s->b->mark, s->offset);
 }
 
 void do_eval_buffer(EditState *s)
 {
-    do_eval_buffer_region(s, 0, -1);
+    do_eval_buffer_region(s, 0, s->b->total_size);
+}
+
+int parse_config_file(EditState *s, const char *filename)
+{
+    QEmacsDataSource ds = { 0 };
+    int res;
+
+    ds.filename = filename;
+    ds.f = fopen(filename, "r");
+    if (!ds.f)
+        return -1;
+    res = qe_parse_script(s, &ds);
+    fclose(ds.f);
+    return res;
 }
 
 #ifndef CONFIG_TINY
@@ -424,7 +424,6 @@
     if (popup) {
         b->offset = 0;
         b->flags |= BF_READONLY;
-
         show_popup(s, b, "QEmacs session");
     } else {
         eb_write_buffer(b, 0, b->total_size, ".qesession");
@@ -436,8 +435,8 @@
 static CmdDef parser_commands[] = {
 
     CMD2( KEY_META(':'), KEY_NONE,
-          "eval-expression", do_eval_expression, ESs,
-          "s{Eval: }|expression|")
+          "eval-expression", do_eval_expression, ESsi,
+          "s{Eval: }|expression|ui")
     CMD0( KEY_NONE, KEY_NONE,
           "eval-region", do_eval_region)
     CMD0( KEY_NONE, KEY_NONE,

Index: qe.c
===================================================================
RCS file: /sources/qemacs/qemacs/qe.c,v
retrieving revision 1.295
retrieving revision 1.296
diff -u -b -r1.295 -r1.296
--- qe.c        4 Oct 2020 23:57:11 -0000       1.295
+++ qe.c        13 Oct 2020 07:14:18 -0000      1.296
@@ -3109,6 +3109,7 @@
         }
         break;
     }
+    //s->qe_state->complete_refresh = 1;
 }
 
 void do_define_color(EditState *e, const char *name, const char *value)
@@ -3162,6 +3163,7 @@
 void do_set_system_font(EditState *s, const char *qe_font_name,
                         const char *system_fonts)
 {
+    QEmacsState *qs = s->qe_state;
     int font_type;
 
     font_type = css_get_enum(qe_font_name, "fixed,serif,sans");
@@ -3169,9 +3171,9 @@
         put_status(s, "Invalid qemacs font");
         return;
     }
-    pstrcpy(s->qe_state->system_fonts[font_type],
-            sizeof(s->qe_state->system_fonts[0]),
+    pstrcpy(qs->system_fonts[font_type], sizeof(qs->system_fonts[0]),
             system_fonts);
+    //qs->complete_refresh = 1;
 }
 
 static void display_bol_bidir(DisplayState *ds, DirType base,
@@ -9099,7 +9101,7 @@
 
         if (*arg == '+' && i < argc) {
             if (strequal(arg, "+eval")) {
-                do_eval_expression(s, argv[i++]);
+                do_eval_expression(s, argv[i++], NO_ARG);
                 s = qs->active_window;
                 continue;
             }

Index: qe.h
===================================================================
RCS file: /sources/qemacs/qemacs/qe.h,v
retrieving revision 1.276
retrieving revision 1.277
diff -u -b -r1.276 -r1.277
--- qe.h        9 Oct 2020 00:00:55 -0000       1.276
+++ qe.h        13 Oct 2020 07:14:18 -0000      1.277
@@ -2293,7 +2293,7 @@
 /* parser.c */
 
 int parse_config_file(EditState *s, const char *filename);
-void do_eval_expression(EditState *s, const char *expression);
+void do_eval_expression(EditState *s, const char *expression, int argval);
 void do_eval_region(EditState *s); /* should pass actual offsets */
 void do_eval_buffer(EditState *s);
 extern int use_session_file;

Index: shell.c
===================================================================
RCS file: /sources/qemacs/qemacs/shell.c,v
retrieving revision 1.140
retrieving revision 1.141
diff -u -b -r1.140 -r1.141
--- shell.c     2 Oct 2020 20:16:09 -0000       1.140
+++ shell.c     13 Oct 2020 07:14:19 -0000      1.141
@@ -2852,7 +2852,7 @@
     set_error_offset(b, 0);
 }
 
-static void do_compile_error(EditState *s, int arg, int dir)
+static void do_compile_error(EditState *s, int dir, int arg)
 {
     QEmacsState *qs = s->qe_state;
     EditState *e;
@@ -3128,9 +3128,9 @@
           "man", do_man, ESs,
           "s{Show man page for: }|man|")
     CMD3( KEY_CTRLX(KEY_CTRL('p')), KEY_NONE,
-          "previous-error", do_compile_error, ESii, -1, "uiv")
+          "previous-error", do_compile_error, ESii, -1, "vui")
     CMD3( KEY_CTRLX(KEY_CTRL('n')), KEY_CTRLX('`'),
-          "next-error", do_compile_error, ESii, 1, "uiv")
+          "next-error", do_compile_error, ESii, 1, "vui")
     CMD_DEF_END,
 };
 



reply via email to

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