emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [PATCH] ox-texinfo: Fix invalid syntax in Texinfo version detection code
@ 2023-02-06 21:42 Rudolf Adamkovič
  2023-02-07  2:24 ` Max Nikulin
  0 siblings, 1 reply; 11+ messages in thread
From: Rudolf Adamkovič @ 2023-02-06 21:42 UTC (permalink / raw)
  To: emacs-orgmode; +Cc: Rudolf Adamkovič

* lisp/ox-texinfo.el (org-texinfo-supports-math-p): Fix the incorrect
syntax @displaymath{1 + 1 = 2} used to detect whether Texinfo supports
TeX "math mode".  Instead, use the correct syntax @math{1 + 1 = 2}.
---
 lisp/ox-texinfo.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/ox-texinfo.el b/lisp/ox-texinfo.el
index 8e3a04562..7ee4bc533 100644
--- a/lisp/ox-texinfo.el
+++ b/lisp/ox-texinfo.el
@@ -2030,7 +2030,7 @@ Once computed, the results remain cached."
                    (input-content
                     (concat (format "@setfilename %s" input-file) "\n"
                             "@node Top" "\n"
-                            (format "@displaymath{%s}" math-example) "\n")))
+                            (format "@math{%s}" math-example) "\n")))
               (with-temp-file input-file
                 (insert input-content))
               (let* ((output-file (org-texinfo-compile input-file))
-- 
2.39.0



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH] ox-texinfo: Fix invalid syntax in Texinfo version detection code
  2023-02-06 21:42 [PATCH] ox-texinfo: Fix invalid syntax in Texinfo version detection code Rudolf Adamkovič
@ 2023-02-07  2:24 ` Max Nikulin
  2023-02-07  8:39   ` Rudolf Adamkovič
  0 siblings, 1 reply; 11+ messages in thread
From: Max Nikulin @ 2023-02-07  2:24 UTC (permalink / raw)
  To: Rudolf Adamkovič, emacs-orgmode

On 07/02/2023 04:42, Rudolf Adamkovič wrote:
> --- a/lisp/ox-texinfo.el
> +++ b/lisp/ox-texinfo.el
> @@ -2030,7 +2030,7 @@ Once computed, the results remain cached."
>                      (input-content
>                       (concat (format "@setfilename %s" input-file) "\n"
>                               "@node Top" "\n"
> -                            (format "@displaymath{%s}" math-example) "\n")))
> +                            (format "@math{%s}" math-example) "\n")))

Should not the format argument be corrected to have valid @displaymath 
snippet instead?

https://list.orgmode.org/87bkwud6ni.fsf@nicolasgoaziou.fr/
Re: [PATCH] Re: No mathematics in Texinfo exports. Thu, 21 Apr 2022 
13:20:49 +0200

>> I do see @displaymath in my TeXinfo 6.8. Also,
>> https://www.gnu.org/software/texinfo/manual/texinfo/html_node/Inserting-Math.html
> 
> So it is a fairly recent addition, since Texinfo 6.8 was released last
> July. For example, it is not available in Debian stable. I don't know if
> displaymath was stealthily supported before.




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] ox-texinfo: Fix invalid syntax in Texinfo version detection code
  2023-02-07  2:24 ` Max Nikulin
@ 2023-02-07  8:39   ` Rudolf Adamkovič
  2023-02-07 12:13     ` Max Nikulin
  0 siblings, 1 reply; 11+ messages in thread
From: Rudolf Adamkovič @ 2023-02-07  8:39 UTC (permalink / raw)
  To: Max Nikulin, emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 307 bytes --]

Max Nikulin <manikulin@gmail.com> writes:

> Should not the format argument be corrected to have valid @displaymath 
> snippet instead?

Thank you, Max!  See, this happens when I write code 10 minutes before going to
bed: incorrect code and no tests, both equally bad.

Please see the attached patch.

Rudy

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-ox-texinfo-Fix-invalid-syntax-in-Texinfo-version-det.patch --]
[-- Type: text/x-patch, Size: 3177 bytes --]

From ce1062dbda870346b18ae35c28e9cc034c0de548 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rudolf=20Adamkovi=C4=8D?= <salutis@me.com>
Date: Mon, 6 Feb 2023 22:33:40 +0100
Subject: [PATCH] ox-texinfo: Fix invalid syntax in Texinfo version detection
 code

* lisp/ox-texinfo.el (org-texinfo-supports-math-p): Fix the incorrect
syntax @displaymath{1 + 1 = 2} used to detect whether Texinfo supports
TeX "math mode".  Instead, use the correct syntax @math{1 + 1 = 2}.
---
 lisp/ox-texinfo.el              | 14 ++++++++------
 testing/lisp/test-ox-texinfo.el | 30 ++++++++++++++++++++++++++++++
 2 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/lisp/ox-texinfo.el b/lisp/ox-texinfo.el
index 8e3a04562..56564a5c5 100644
--- a/lisp/ox-texinfo.el
+++ b/lisp/ox-texinfo.el
@@ -2025,12 +2025,14 @@ Once computed, the results remain cached."
   (unless (boundp 'org-texinfo-supports-math--cache)
     (setq org-texinfo-supports-math--cache
           (let ((math-example "1 + 1 = 2"))
-            (let* ((input-file
-                    (make-temp-file "test" nil ".info"))
-                   (input-content
-                    (concat (format "@setfilename %s" input-file) "\n"
-                            "@node Top" "\n"
-                            (format "@displaymath{%s}" math-example) "\n")))
+            (let* ((input-file (make-temp-file "test" nil ".info"))
+                   (input-content (string-join
+                                   (list (format "@setfilename %s" input-file)
+                                         "@node Top"
+                                         "@displaymath"
+                                         math-example
+                                         "@end displaymath")
+                                   "\n")))
               (with-temp-file input-file
                 (insert input-content))
               (let* ((output-file (org-texinfo-compile input-file))
diff --git a/testing/lisp/test-ox-texinfo.el b/testing/lisp/test-ox-texinfo.el
index 51fdb3606..4bb902988 100644
--- a/testing/lisp/test-ox-texinfo.el
+++ b/testing/lisp/test-ox-texinfo.el
@@ -292,5 +292,35 @@
              nil
              '(:with-latex t))))))
 
+\f
+;;; End-to-end
+
+(ert-deftest test-ox-texinfo/end-to-end-inline ()
+  "Test end-to-end with inline TeX fragment."
+  (should
+   (org-test-with-temp-text
+    "$a^2 = b$"
+    (let ((export-buffer "*Test Texinfo Export*")
+          (org-export-show-temporary-export-buffer nil))
+      (org-export-to-buffer 'texinfo export-buffer
+        nil nil nil nil nil
+        #'texinfo-mode)))))
+
+(ert-deftest test-ox-texinfo/end-to-end-sanity-check-displayed ()
+  "Test end-to-end with LaTeX environment."
+  (should
+   (org-test-with-temp-text
+    (string-join
+     (list "\\begin{equation}"
+           "a ^ 2 = b"
+           "b ^ 2 = c"
+           "\\end{equation}")
+     "\n")
+    (let ((export-buffer "*Test Texinfo Export*")
+          (org-export-show-temporary-export-buffer nil))
+      (org-export-to-buffer 'texinfo export-buffer
+        nil nil nil nil nil
+        #'texinfo-mode)))))
+
 (provide 'test-ox-texinfo)
 ;;; test-ox-texinfo.el end here
-- 
2.39.0


[-- Attachment #3: Type: text/plain, Size: 278 bytes --]

-- 
"Strange as it may sound, the power of mathematics rests on its evasion
of all unnecessary thought and on its wonderful saving of mental
operations."
-- Ernst Mach, 1838-1916

Rudolf Adamkovič <salutis@me.com> [he/him]
Studenohorská 25
84103 Bratislava
Slovakia

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH] ox-texinfo: Fix invalid syntax in Texinfo version detection code
  2023-02-07  8:39   ` Rudolf Adamkovič
@ 2023-02-07 12:13     ` Max Nikulin
  2023-02-07 12:21       ` Ihor Radchenko
  0 siblings, 1 reply; 11+ messages in thread
From: Max Nikulin @ 2023-02-07 12:13 UTC (permalink / raw)
  To: Rudolf Adamkovič, emacs-orgmode

Rudolf, I am afraid there is another obstacle till your step to improve 
Org may be completed.

On 07/02/2023 15:39, Rudolf Adamkovič wrote:
> -            (let* ((input-file
> -                    (make-temp-file "test" nil ".info"))
> -                   (input-content
> -                    (concat (format "@setfilename %s" input-file) "\n"
> -                            "@node Top" "\n"
> -                            (format "@displaymath{%s}" math-example) "\n")))
> +            (let* ((input-file (make-temp-file "test" nil ".info"))
> +                   (input-content (string-join

In emacs-26 `string-join' is defined in subr-x.el, but ox-texinfo.el 
does not have (require 'subr-x). Personally I see nothing bad in

    (format "@displaymath\n%s\n@end" math-example)

Historically subr-x was avoided in Org. Latest discussion:
https://list.orgmode.org/b1eef17f-b8ef-2e2a-d463-7909b03ce6eb@gmail.com/T/#u
[BUG] Re: 98e168b48 Add compatibility wrapper for 
string-clean-whitespace (Emacs 26 compatibility) Fri, 07 Oct 2022 
13:14:11 +0800

I will leave the decision to the maintainers since I have no particular 
opinion. Alternatively you may use (mapconcat #'identity (list) "\n").

It is preferable to fix earlier added call to `string-join' in this 
file. The similar approach should be applied to the tests added by this 
patch.

> +                                   (list (format "@setfilename %s" input-file)
> +                                         "@node Top"
> +                                         "@displaymath"



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] ox-texinfo: Fix invalid syntax in Texinfo version detection code
  2023-02-07 12:13     ` Max Nikulin
@ 2023-02-07 12:21       ` Ihor Radchenko
  2023-02-07 15:13         ` Max Nikulin
  0 siblings, 1 reply; 11+ messages in thread
From: Ihor Radchenko @ 2023-02-07 12:21 UTC (permalink / raw)
  To: Max Nikulin; +Cc: Rudolf Adamkovič, emacs-orgmode

Max Nikulin <manikulin@gmail.com> writes:

> In emacs-26 `string-join' is defined in subr-x.el, but ox-texinfo.el 
> does not have (require 'subr-x). Personally I see nothing bad in
>
>     (format "@displaymath\n%s\n@end" math-example)
>
> Historically subr-x was avoided in Org. Latest discussion:
> https://list.orgmode.org/b1eef17f-b8ef-2e2a-d463-7909b03ce6eb@gmail.com/T/#u

... which concluded that it is safe to use subr-x.
If we need to add a require, so be it. I see no major downsides.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] ox-texinfo: Fix invalid syntax in Texinfo version detection code
  2023-02-07 12:21       ` Ihor Radchenko
@ 2023-02-07 15:13         ` Max Nikulin
  2023-02-15 18:22           ` Rudolf Adamkovič
  0 siblings, 1 reply; 11+ messages in thread
From: Max Nikulin @ 2023-02-07 15:13 UTC (permalink / raw)
  To: Rudolf Adamkovič, emacs-orgmode

On 07/02/2023 19:21, Ihor Radchenko wrote:
> Max Nikulin writes:
>>
>> Historically subr-x was avoided in Org. Latest discussion:
>> https://list.orgmode.org/b1eef17f-b8ef-2e2a-d463-7909b03ce6eb@gmail.com/T/#u
> 
> ... which concluded that it is safe to use subr-x.
> If we need to add a require, so be it. I see no major downsides.

I do not mind.

Since content of subr-x.el consists of `defsubst' definitions, likely it 
is preferable to use

     (eval-when-compile (require 'subr-x))



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] ox-texinfo: Fix invalid syntax in Texinfo version detection code
  2023-02-07 15:13         ` Max Nikulin
@ 2023-02-15 18:22           ` Rudolf Adamkovič
  2023-02-17 10:41             ` Ihor Radchenko
  0 siblings, 1 reply; 11+ messages in thread
From: Rudolf Adamkovič @ 2023-02-15 18:22 UTC (permalink / raw)
  To: Max Nikulin, emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 254 bytes --]

Max Nikulin <manikulin@gmail.com> writes:

> Since content of subr-x.el consists of `defsubst' definitions, likely it 
> is preferable to use
>
>      (eval-when-compile (require 'subr-x))

All right, I added the 'require' to both files.  Better?

Rudy


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-ox-texinfo-Fix-invalid-syntax-in-Texinfo-version-det.patch --]
[-- Type: text/x-patch, Size: 3545 bytes --]

From 384515548a4eb790e9b947e484dd9da41bdece94 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rudolf=20Adamkovi=C4=8D?= <salutis@me.com>
Date: Mon, 6 Feb 2023 22:33:40 +0100
Subject: [PATCH] ox-texinfo: Fix invalid syntax in Texinfo version detection
 code

* lisp/ox-texinfo.el (org-texinfo-supports-math-p): Fix the incorrect
syntax @displaymath{1 + 1 = 2} used to detect whether Texinfo supports
TeX "math mode".  Instead, use the correct syntax @math{1 + 1 = 2}.
---
 lisp/ox-texinfo.el              | 16 ++++++++++------
 testing/lisp/test-ox-texinfo.el | 32 ++++++++++++++++++++++++++++++++
 2 files changed, 42 insertions(+), 6 deletions(-)

diff --git a/lisp/ox-texinfo.el b/lisp/ox-texinfo.el
index 8e3a04562..4ff482cc3 100644
--- a/lisp/ox-texinfo.el
+++ b/lisp/ox-texinfo.el
@@ -32,6 +32,8 @@
 (require 'cl-lib)
 (require 'ox)
 
+(eval-when-compile (require 'subr-x))
+
 (defvar orgtbl-exp-regexp)
 (defvar org-texinfo-supports-math--cache)
 
@@ -2025,12 +2027,14 @@ Once computed, the results remain cached."
   (unless (boundp 'org-texinfo-supports-math--cache)
     (setq org-texinfo-supports-math--cache
           (let ((math-example "1 + 1 = 2"))
-            (let* ((input-file
-                    (make-temp-file "test" nil ".info"))
-                   (input-content
-                    (concat (format "@setfilename %s" input-file) "\n"
-                            "@node Top" "\n"
-                            (format "@displaymath{%s}" math-example) "\n")))
+            (let* ((input-file (make-temp-file "test" nil ".info"))
+                   (input-content (string-join
+                                   (list (format "@setfilename %s" input-file)
+                                         "@node Top"
+                                         "@displaymath"
+                                         math-example
+                                         "@end displaymath")
+                                   "\n")))
               (with-temp-file input-file
                 (insert input-content))
               (let* ((output-file (org-texinfo-compile input-file))
diff --git a/testing/lisp/test-ox-texinfo.el b/testing/lisp/test-ox-texinfo.el
index 51fdb3606..38395500d 100644
--- a/testing/lisp/test-ox-texinfo.el
+++ b/testing/lisp/test-ox-texinfo.el
@@ -24,6 +24,8 @@
 (require 'cl-lib)
 (require 'ox-texinfo)
 
+(eval-when-compile (require 'subr-x))
+
 (unless (featurep 'ox-texinfo)
   (signal 'missing-test-dependency "org-export-texinfo"))
 
@@ -292,5 +294,35 @@
              nil
              '(:with-latex t))))))
 
+\f
+;;; End-to-end
+
+(ert-deftest test-ox-texinfo/end-to-end-inline ()
+  "Test end-to-end with inline TeX fragment."
+  (should
+   (org-test-with-temp-text
+    "$a^2 = b$"
+    (let ((export-buffer "*Test Texinfo Export*")
+          (org-export-show-temporary-export-buffer nil))
+      (org-export-to-buffer 'texinfo export-buffer
+        nil nil nil nil nil
+        #'texinfo-mode)))))
+
+(ert-deftest test-ox-texinfo/end-to-end-sanity-check-displayed ()
+  "Test end-to-end with LaTeX environment."
+  (should
+   (org-test-with-temp-text
+    (string-join
+     (list "\\begin{equation}"
+           "a ^ 2 = b"
+           "b ^ 2 = c"
+           "\\end{equation}")
+     "\n")
+    (let ((export-buffer "*Test Texinfo Export*")
+          (org-export-show-temporary-export-buffer nil))
+      (org-export-to-buffer 'texinfo export-buffer
+        nil nil nil nil nil
+        #'texinfo-mode)))))
+
 (provide 'test-ox-texinfo)
 ;;; test-ox-texinfo.el end here
-- 
2.39.0


[-- Attachment #3: Type: text/plain, Size: 214 bytes --]

-- 
"Chop your own wood and it will warm you twice."
-- Henry Ford; Francis Kinloch, 1819; Henry David Thoreau, 1854

Rudolf Adamkovič <salutis@me.com> [he/him]
Studenohorská 25
84103 Bratislava
Slovakia

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH] ox-texinfo: Fix invalid syntax in Texinfo version detection code
  2023-02-15 18:22           ` Rudolf Adamkovič
@ 2023-02-17 10:41             ` Ihor Radchenko
  2023-02-17 12:51               ` Ihor Radchenko
  0 siblings, 1 reply; 11+ messages in thread
From: Ihor Radchenko @ 2023-02-17 10:41 UTC (permalink / raw)
  To: Rudolf Adamkovič; +Cc: Max Nikulin, emacs-orgmode

Rudolf Adamkovič <salutis@me.com> writes:

> All right, I added the 'require' to both files.  Better?

Thanks!
Applied, onto bugfix.
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=99c8ed09f

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] ox-texinfo: Fix invalid syntax in Texinfo version detection code
  2023-02-17 10:41             ` Ihor Radchenko
@ 2023-02-17 12:51               ` Ihor Radchenko
  2023-03-24 16:37                 ` Ihor Radchenko
  0 siblings, 1 reply; 11+ messages in thread
From: Ihor Radchenko @ 2023-02-17 12:51 UTC (permalink / raw)
  To: Rudolf Adamkovič; +Cc: Max Nikulin, emacs-orgmode

Ihor Radchenko <yantar92@posteo.net> writes:

>> All right, I added the 'require' to both files.  Better?
>
> Thanks!
> Applied, onto bugfix.
> https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=99c8ed09f

The tests are failing on older Emacs.
https://builds.sr.ht/~bzg/job/942040
https://builds.sr.ht/~bzg/job/942041

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] ox-texinfo: Fix invalid syntax in Texinfo version detection code
  2023-02-17 12:51               ` Ihor Radchenko
@ 2023-03-24 16:37                 ` Ihor Radchenko
  2023-04-01 21:22                   ` Rudolf Adamkovič
  0 siblings, 1 reply; 11+ messages in thread
From: Ihor Radchenko @ 2023-03-24 16:37 UTC (permalink / raw)
  To: Rudolf Adamkovič; +Cc: Max Nikulin, emacs-orgmode

Ihor Radchenko <yantar92@posteo.net> writes:

> Ihor Radchenko <yantar92@posteo.net> writes:
>
>>> All right, I added the 'require' to both files.  Better?
>>
>> Thanks!
>> Applied, onto bugfix.
>> https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=99c8ed09f
>
> The tests are failing on older Emacs.
> https://builds.sr.ht/~bzg/job/942040
> https://builds.sr.ht/~bzg/job/942041

I finally managed to fix the tests.
See
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?h=bugfix&id=4c01eba265edfb910e926c5559aca5bf7d7a3650

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH] ox-texinfo: Fix invalid syntax in Texinfo version detection code
  2023-03-24 16:37                 ` Ihor Radchenko
@ 2023-04-01 21:22                   ` Rudolf Adamkovič
  0 siblings, 0 replies; 11+ messages in thread
From: Rudolf Adamkovič @ 2023-04-01 21:22 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: Max Nikulin, emacs-orgmode

Ihor Radchenko <yantar92@posteo.net> writes:

> I finally managed to fix the tests.

Thank you!  I have had this on my to-do list since you brought it up,but
I could not find the time to fix it.

Rudy
-- 
"'Contrariwise,' continued Tweedledee, 'if it was so, it might be; and
if it were so, it would be; but as it isn't, it ain't.  That's logic.'"
-- Lewis Carroll, Through the Looking Glass, 1871/1872

Rudolf Adamkovič <salutis@me.com> [he/him]
Studenohorská 25
84103 Bratislava
Slovakia


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-04-01 21:23 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-06 21:42 [PATCH] ox-texinfo: Fix invalid syntax in Texinfo version detection code Rudolf Adamkovič
2023-02-07  2:24 ` Max Nikulin
2023-02-07  8:39   ` Rudolf Adamkovič
2023-02-07 12:13     ` Max Nikulin
2023-02-07 12:21       ` Ihor Radchenko
2023-02-07 15:13         ` Max Nikulin
2023-02-15 18:22           ` Rudolf Adamkovič
2023-02-17 10:41             ` Ihor Radchenko
2023-02-17 12:51               ` Ihor Radchenko
2023-03-24 16:37                 ` Ihor Radchenko
2023-04-01 21:22                   ` Rudolf Adamkovič

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).