Round 299: Ar ext, Pkg-config ext, Ldconfig ext, Locale ext, Timezone ext (20 commands)

ober

965b546dfc67e6362e9241b4c0227eac7c0ef93a

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index ee2eb41..10c48c1 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 299 — Ar ext, Pkg-config ext, Ldconfig ext, Locale ext, Timezone ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| ar-create | :orange_circle: | Create archive |
+| ar-extract | :orange_circle: | Extract archive |
+| ar-list | :orange_circle: | List archive contents |
+| ar-add | :orange_circle: | Add to archive |
+| ranlib-index | :orange_circle: | Index archive |
+| pkg-config-list | :orange_circle: | List packages |
+| pkg-config-cflags | :orange_circle: | Show cflags |
+| pkg-config-libs | :orange_circle: | Show libs |
+| pkg-config-modversion | :orange_circle: | Show version |
+| ldconfig-list | :orange_circle: | List libraries |
+| ldconfig-rebuild | :orange_circle: | Rebuild cache |
+| ldconfig-cache | :orange_circle: | Show cache |
+| ldconfig-print | :orange_circle: | Print library path |
+| locale-list | :orange_circle: | List locales |
+| locale-gen | :orange_circle: | Generate locale |
+| locale-set | :orange_circle: | Set locale |
+| locale-info | :orange_circle: | Show locale info |
+| timezone-list | :orange_circle: | List timezones |
+| timezone-set | :orange_circle: | Set timezone |
+| timezone-info | :orange_circle: | Show timezone info |
+
 ### Round 298 — Objdump ext, Readelf ext, Nm ext, Ldd ext, Strip ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index b1f2e3e..518d735 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -22863,4 +22863,54 @@
   (let* ((echo (app-state-echo app)))
     (echo-read-string echo "Binary: "
       (lambda (bin)
-        (echo-message! echo (str "Strip: removing all from " bin))))))
\ No newline at end of file
+        (echo-message! echo (str "Strip: removing all from " bin))))))
+
+;;; Round 299 — Ldconfig ext, Locale ext, Timezone ext (batch 2)
+
+(def (cmd-ldconfig-rebuild app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ldconfig: rebuilding cache")))
+
+(def (cmd-ldconfig-cache app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ldconfig: showing cache")))
+
+(def (cmd-ldconfig-print app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Library: "
+      (lambda (lib)
+        (echo-message! echo (str "Ldconfig: print path for " lib))))))
+
+(def (cmd-locale-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Locale: listing available locales")))
+
+(def (cmd-locale-gen app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Locale: "
+      (lambda (loc)
+        (echo-message! echo (str "Locale: generating " loc))))))
+
+(def (cmd-locale-set app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Locale: "
+      (lambda (loc)
+        (echo-message! echo (str "Locale: setting " loc))))))
+
+(def (cmd-locale-info app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Locale: showing current locale info")))
+
+(def (cmd-timezone-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Timezone: listing timezones")))
+
+(def (cmd-timezone-set app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Timezone: "
+      (lambda (tz)
+        (echo-message! echo (str "Timezone: setting " tz))))))
+
+(def (cmd-timezone-info app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Timezone: showing current timezone")))
\ No newline at end of file
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index a030048..fc6ebce 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -23578,3 +23578,61 @@
       (lambda (obj)
         (echo-message! echo (str "Nm: defined symbols in " obj))))))
 
+;;; Round 299 — Ar ext, Pkg-config ext, Ldconfig ext (batch 1)
+
+(def (cmd-ar-create app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Archive name: "
+      (lambda (name)
+        (echo-message! echo (str "Ar: creating " name))))))
+
+(def (cmd-ar-extract app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Archive: "
+      (lambda (ar)
+        (echo-message! echo (str "Ar: extracting " ar))))))
+
+(def (cmd-ar-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Archive: "
+      (lambda (ar)
+        (echo-message! echo (str "Ar: listing " ar))))))
+
+(def (cmd-ar-add app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Archive: "
+      (lambda (ar)
+        (echo-message! echo (str "Ar: adding to " ar))))))
+
+(def (cmd-ranlib-index app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Archive: "
+      (lambda (ar)
+        (echo-message! echo (str "Ranlib: indexing " ar))))))
+
+(def (cmd-pkg-config-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pkg-config: listing packages")))
+
+(def (cmd-pkg-config-cflags app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Package: "
+      (lambda (pkg)
+        (echo-message! echo (str "Pkg-config: cflags for " pkg))))))
+
+(def (cmd-pkg-config-libs app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Package: "
+      (lambda (pkg)
+        (echo-message! echo (str "Pkg-config: libs for " pkg))))))
+
+(def (cmd-pkg-config-modversion app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Package: "
+      (lambda (pkg)
+        (echo-message! echo (str "Pkg-config: version of " pkg))))))
+
+(def (cmd-ldconfig-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ldconfig: listing libraries")))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 5c8911e..50a474b 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -7696,4 +7696,25 @@
   (register-command! 'strip-debug cmd-strip-debug)
   (register-command! 'strip-symbols cmd-strip-symbols)
   (register-command! 'strip-all cmd-strip-all)
+  ;; Round 299
+  (register-command! 'ar-create cmd-ar-create)
+  (register-command! 'ar-extract cmd-ar-extract)
+  (register-command! 'ar-list cmd-ar-list)
+  (register-command! 'ar-add cmd-ar-add)
+  (register-command! 'ranlib-index cmd-ranlib-index)
+  (register-command! 'pkg-config-list cmd-pkg-config-list)
+  (register-command! 'pkg-config-cflags cmd-pkg-config-cflags)
+  (register-command! 'pkg-config-libs cmd-pkg-config-libs)
+  (register-command! 'pkg-config-modversion cmd-pkg-config-modversion)
+  (register-command! 'ldconfig-list cmd-ldconfig-list)
+  (register-command! 'ldconfig-rebuild cmd-ldconfig-rebuild)
+  (register-command! 'ldconfig-cache cmd-ldconfig-cache)
+  (register-command! 'ldconfig-print cmd-ldconfig-print)
+  (register-command! 'locale-list cmd-locale-list)
+  (register-command! 'locale-gen cmd-locale-gen)
+  (register-command! 'locale-set cmd-locale-set)
+  (register-command! 'locale-info cmd-locale-info)
+  (register-command! 'timezone-list cmd-timezone-list)
+  (register-command! 'timezone-set cmd-timezone-set)
+  (register-command! 'timezone-info cmd-timezone-info)
 )