[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master bd443f4 1/3: * build-aux/make-info-dir: Handle .org input files.
From: |
Glenn Morris |
Subject: |
master bd443f4 1/3: * build-aux/make-info-dir: Handle .org input files. |
Date: |
Thu, 4 Mar 2021 13:47:24 -0500 (EST) |
branch: master
commit bd443f4e9c50463524f48cf5c43f35f2cecd528a
Author: Glenn Morris <rgm@gnu.org>
Commit: Glenn Morris <rgm@gnu.org>
* build-aux/make-info-dir: Handle .org input files.
---
build-aux/make-info-dir | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/build-aux/make-info-dir b/build-aux/make-info-dir
index ea26479..256c9f0 100755
--- a/build-aux/make-info-dir
+++ b/build-aux/make-info-dir
@@ -52,8 +52,11 @@ exec "${AWK-awk}" '
topic[ntopics++] = "Emacs misc features"
topic[ntopics++] = "Emacs lisp libraries"
topic[ntopics] = "Unknown category"
+ texinfo = 0
}
+
/^@dircategory / {
+ texinfo = 1
sub(/^@dircategory /, "")
detexinfo()
for (dircat = 0; dircat < ntopics && topic[dircat] != $0; dircat++)
@@ -66,6 +69,33 @@ exec "${AWK-awk}" '
data[dircat] = data[dircat] $0 "\n"
}
}
+
+ ## Org stuff. TODO we assume the order of the texinfo items.
+ {
+ ## TODO Check FILENAME suffix instead?
+ ## TODO Is this portable awk?
+ if (FNR == 1) texinfo = 0
+
+ ## If applied to the generated org.texi file, this picks up the examples.
+ ## Thanks for making life more difficult...
+ if (texinfo) next
+
+ if (tolower($0) ~ /^#\+texinfo_dir_category/) {
+ sub(/^#[^:]*: /, "")
+ for (dircat = 0; dircat < ntopics && topic[dircat] != $0; dircat++)
+ continue;
+ }
+ if (tolower($0) ~ /^#\+texinfo_dir_title/) {
+ sub(/^#[^:]*: /, "")
+ ## Note this does not fill any long descriptions.
+ data[dircat] = data[dircat] sprintf("* %-30s", ($0 ". "))
+ }
+ if (tolower($0) ~ /^#\+texinfo_dir_desc/) {
+ sub(/^#[^:]*: /, "")
+ data[dircat] = data[dircat] $0 ".\n"
+ }
+ }
+
END {
for (dircat = 0; dircat <= ntopics; dircat++)
if (data[dircat])