]> git.neil.brown.name Git - edlib.git/commitdiff
config: support PREFIX commands for module auto-load
authorNeilBrown <neil@brown.name>
Sun, 18 Jun 2023 22:39:10 +0000 (08:39 +1000)
committerNeilBrown <neil@brown.name>
Wed, 28 Jun 2023 07:51:41 +0000 (17:51 +1000)
Now that prefix commands are handled, we can do charet properly and
discard the "ALWAYS" hack.

Signed-off-by: NeilBrown <neil@brown.name>
edlib.ini
lib-config.c

index 744a2f0e5f224bd1f5fe9b8b0c7746f121ebb21f..bb160de935b775ad7784c740f65979159e056171 100644 (file)
--- a/edlib.ini
+++ b/edlib.ini
@@ -118,7 +118,12 @@ lib-ical-to-text = ical-to-text
 lib-utf8 =
        attach-charset-utf-8
        attach-utf8
-lib-charset = ALWAYS
+lib-charset =
+       PREFIX attach-charset-windows-
+       PREFIX attach-charset-iso-8859-
+       attach-charset-us-ascii
+       PREFIX charset-to-utf8-windows-
+       PREFIX charset-to-utf8-iso-8859-
 
 [file:COMMIT_EDITMSG*]
 APPEND view-default = ,textfill,whitespace,autospell
index 4c6bcd0837874535642b40d27d5a1ffa8b58e63d..e50938739b81318d2eecd48fc324172058670464 100644 (file)
@@ -298,17 +298,18 @@ static void handle(void *data, char *section safe, char *name safe, char *value
 
        if (strcmp(section, "module") == 0 && value[0]) {
                struct mod_cmd *mc;
-               if (strcmp(value, "ALWAYS") == 0) {
-                       call("global-load-module", cd->root, 0, NULL, name);
-                       return;
-               }
+
                mc = malloc(sizeof(*mc));
                mc->module = strdup(name);
                mc->tried = 0;
                mc->c = autoload;
                mc->c.free = al_free;
-               call_comm("global-set-command", cd->root, &mc->c, 0, NULL,
-                         value);
+               if (strstarts(value, "PREFIX "))
+                       call_comm("global-set-command-prefix", cd->root, &mc->c, 0, NULL,
+                                 value + 7);
+               else
+                       call_comm("global-set-command", cd->root, &mc->c, 0, NULL,
+                                 value);
                return;
        }