Hey everyone, In the manual and a few other places I noticed references to ‘printf’ formatting despite the Emacs ‘format’ being used. While ‘format’ draws heavily from ‘printf’ it has some important differences, so I think it’s clearer to refer to it instead. For example, ‘format’ uses multi-precision numeric types so you’re not limited to, e.g. 64-bit integers:
| 0XFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | #+TBLFM: $1=2^128-1;%#X #+begin_src shell printf "%#X\n" 340282366920938463463374607431768211455 #+end_src #+RESULTS: : 0XFFFFFFFFFFFFFFFF I think I’ve corrected all the relevant parts in the attached patch.
>From fd9947716404cbce324e8df2c825208d24b6d999 Mon Sep 17 00:00:00 2001 From: "Jacob S. Gordon" <[email protected]> Date: Thu, 11 Dec 2025 15:30:19 -0500 Subject: [PATCH v1] Correct mentions of 'printf' to 'format' The manual and documentation strings discuss 'printf' formatting and limitations thereof, despite actually using the Emacs 'format'. * doc/org-manual.org (Formula syntax for Calc) (Emacs Lisp forms as formulas): Refer to 'format' instead of 'printf'. Remove footnote about 'printf' precision and renumber remaining notes. * doc/orgcard.tex (Spreadsheet): Remove 'printf'. * lisp/org-agenda.el (org-agenda-prefix-format): Remove 'printf'. * lisp/org-colview.el (org-columns--displayed-value) (org-columns-uncompile-format, org-columns-compile-format) (org-columns--compute-spec, org-columns--summary-sum) (org-columns--summary-min, org-columns--summary-max) (org-columns--summary-mean, org-agenda-colview-summarize): Rename 'printf' component of the column format and associated variables. * lisp/org.el (org-heading-keyword-regexp-format) (org-heading-keyword-maybe-regexp-format) (org-complex-heading-regexp-format): Refer to 'format' in doc string. * lisp/ox-latex.el (org-latex-active-timestamp-format) (org-latex-inactive-timestamp-format) (org-latex-diary-timestamp-format): Refer to 'format' in doc string. * lisp/ox-texinfo.el (org-texinfo-active-timestamp-format) (org-texinfo-inactive-timestamp-format) (org-texinfo-diary-timestamp-format): Refer to 'format' in doc string. * testing/lisp/test-org-colview.el (test-org-colview/uncompile-format) (test-org-colview/compile-format): Update comments. * testing/lisp/test-org-table.el (test-org-table/sub-total): Refer to 'format' in doc string. --- doc/org-manual.org | 214 +++++++++++++++---------------- doc/orgcard.tex | 2 +- lisp/org-agenda.el | 9 +- lisp/org-colview.el | 50 ++++---- lisp/org.el | 6 +- lisp/ox-latex.el | 6 +- lisp/ox-texinfo.el | 6 +- testing/lisp/test-org-colview.el | 4 +- testing/lisp/test-org-table.el | 4 +- 9 files changed, 147 insertions(+), 154 deletions(-) diff --git a/doc/org-manual.org b/doc/org-manual.org index 89fe6b392..f00367b92 100644 --- a/doc/org-manual.org +++ b/doc/org-manual.org @@ -2241,11 +2241,9 @@ *** Formula syntax for Calc Literal, for Lisp formulas only. See the next section. -Unless you use large integer numbers or high-precision calculation and -display for floating point numbers you may alternatively provide -a ~printf~ format specifier to reformat the Calc result after it has -been passed back to Org instead of letting Calc already do the -formatting[fn:9]. A few examples: +You may also provide a ~format~ specifier to reformat the Calc result +after it has been passed back to Org instead of letting Calc handle +the formatting. A few examples: | =$1+$2= | Sum of first and second field | | =$1+$2;%.2f= | Same, format result to two decimals | @@ -2254,7 +2252,7 @@ *** Formula syntax for Calc | =($3-32)*5/9= | Degrees F \to C conversion | | =$c/$1/$cm= | Hz \to cm conversion, using =constants.el= | | =tan($1);Dp3s1= | Compute in degrees, precision 3, display SCI 1 | -| =sin($1);Dp3%.1e= | Same, but use ~printf~ specifier for display | +| =sin($1);Dp3%.1e= | Same, but use ~format~ specifier for display | | =vmean($2..$7)= | Compute column range mean, using vector function | | =vmean($2..$7);EN= | Same, but treat empty fields as 0 | | =taylor($3,x=7,2)= | Taylor series of $3, at x=7, second degree | @@ -2314,7 +2312,7 @@ *** Emacs Lisp forms as formulas single-quote followed by an opening parenthesis. Cell table references are interpolated into the Lisp form before execution. The evaluation should return either a string or a number. Evaluation -modes and a ~printf~ format used to render the returned values can be +modes and a ~format~ string used to render the returned values can be specified after a semicolon. By default, references are interpolated as literal Lisp strings: the @@ -3158,7 +3156,7 @@ ** Link Format #+cindex: angle bracket links #+cindex: plain links Org recognizes plain URIs, possibly wrapped within angle -brackets[fn:10], and activate them as clickable links. +brackets[fn:9], and activate them as clickable links. #+cindex: bracket links The general link format, however, looks like this: @@ -3228,7 +3226,7 @@ ** Internal Links a document. Most notably, a construct like =[[#my-custom-id]]= specifically targets the entry with the =CUSTOM_ID= property set to =my-custom-id=. Also, an internal link looking like =[[*Some -section]]= points to a headline with the name =Some section=[fn:11]. +section]]= points to a headline with the name =Some section=[fn:10]. #+cindex: targets, for links When the link does not belong to any of the cases above, Org looks for @@ -3426,7 +3424,7 @@ ** External Links | | =/ssh:[email protected]:papers/last.pdf= (same as above) | | | =file:sometextfile::NNN= (jump to line number) | | | =file:projects.org= | -| | =file:projects.org::some words= (text search)[fn:12] | +| | =file:projects.org::some words= (text search)[fn:11] | | | =file:projects.org::*task title= (headline search) | | | =file:projects.org::#custom-id= (headline search) | | attachment | =attachment:projects.org= | @@ -3612,11 +3610,11 @@ ** Handling Links #+cindex: completion, of links #+cindex: inserting links #+vindex: org-link-keep-stored-after-insertion - Insert a link[fn:13]. This prompts for a link to be inserted into + Insert a link[fn:12]. This prompts for a link to be inserted into the buffer. You can just type a link, using text for an internal link, or one of the link type prefixes mentioned in the examples above. The link is inserted into the buffer, along with - a descriptive text[fn:14]. If some text was selected at this time, + a descriptive text[fn:13]. If some text was selected at this time, it becomes the default description. - /Inserting stored links/ :: @@ -4444,7 +4442,7 @@ *** Tracking TODO state changes You not only define global TODO keywords and fast access keys, but also request that a time is recorded when the entry is set to =DONE=, and that a note is recorded when switching to =WAIT= or -=CANCELED=[fn:15]. The setting for =WAIT= is even more special: the +=CANCELED=[fn:14]. The setting for =WAIT= is even more special: the =!= after the slash means that in addition to the note taken when entering the state, a timestamp should be recorded when /leaving/ the =WAIT= state, if and only if the /target/ state does not configure @@ -4744,7 +4742,7 @@ ** Checkboxes #+cindex: checkboxes #+vindex: org-list-automatic-rules -Every item in a plain list[fn:16] (see [[*Plain Lists]]) can be made into +Every item in a plain list[fn:15] (see [[*Plain Lists]]) can be made into a checkbox by starting it with the string =[ ]=. This feature is similar to TODO items (see [[*TODO Items]]), but is more lightweight. Checkboxes are not included into the global TODO list, so they are @@ -5548,7 +5546,7 @@ ** Special Properties | =PRIORITY= | The priority of the entry, a string with a single letter. | | =SCHEDULED= | The scheduling timestamp. | | =TAGS= | The tags defined directly in the headline. | -| =TIMESTAMP= | The first active keyword-less timestamp in the entry.[fn:17] | +| =TIMESTAMP= | The first active keyword-less timestamp in the entry.[fn:16] | | =TIMESTAMP_IA= | The first inactive keyword-less timestamp in the entry. | | =TODO= | The TODO keyword of the entry. | @@ -5775,7 +5773,7 @@ **** Column attributes | =:min= | Smallest time value in column. | | =:max= | Largest time value. | | =:mean= | Arithmetic mean of time values. | - | =@min= | Minimum age[fn:18] (in days/hours/mins/seconds). | + | =@min= | Minimum age[fn:17] (in days/hours/mins/seconds). | | =@max= | Maximum age (in days/hours/mins/seconds). | | =@mean= | Arithmetic mean of ages (in days/hours/mins/seconds). | | =est+= | Add low-high estimates. | @@ -6200,7 +6198,7 @@ ** Timestamps A timestamp is a specification of a date---possibly with a time or time range---in a special format, either =<2003-09-16 Tue>= or -=<2003-09-16 Tue 09:39>= or =<2003-09-16 Tue 12:00-12:30>=[fn:19]. +=<2003-09-16 Tue 09:39>= or =<2003-09-16 Tue 12:00-12:30>=[fn:18]. A timestamp can appear anywhere in the headline or body of an Org tree entry. Its presence causes entries to be shown on specific dates in the agenda (see [[*Weekly/daily agenda]]). We distinguish: @@ -6250,7 +6248,7 @@ ** Timestamps For more complex date specifications, Org mode supports using the special expression diary entries implemented in the - [[info:emacs#Special Diary Entries][Emacs Calendar package]][fn:20]. + [[info:emacs#Special Diary Entries][Emacs Calendar package]][fn:19]. For example, with optional time: #+begin_example @@ -6420,7 +6418,7 @@ *** The date/time prompt information, Org mode assumes that most of the time you want to enter a date in the future: if you omit the month/year and the given day/month is /before/ today, it assumes that you mean a future -date[fn:21]. If the date has been automatically shifted into the +date[fn:20]. If the date has been automatically shifted into the future, the time prompt shows this with =(=>F)=. For example, let's assume that today is *June 13, 2006*. Here is how @@ -6520,7 +6518,7 @@ *bold*. | {{{kbd(<)}}} | Scroll calendar backward by one month. | | {{{kbd(M-v)}}} | Scroll calendar forward by 3 months. | | {{{kbd(C-v)}}} | Scroll calendar backward by 3 months. | -| {{{kbd(C-.)}}} | Select today's date[fn:22] | +| {{{kbd(C-.)}}} | Select today's date[fn:21] | #+vindex: org-read-date-display-live The actions of the date/time prompt may seem complex, but I assure you @@ -6622,7 +6620,7 @@ ** Deadlines and Scheduling date. #+vindex: org-agenda-skip-scheduled-if-done - The headline is listed under the given date[fn:23]. In addition, + The headline is listed under the given date[fn:22]. In addition, a reminder that the scheduled date has passed is present in the compilation for /today/, until the entry is marked as done, i.e., the task is automatically forwarded until completed. @@ -6674,7 +6672,7 @@ *** Inserting deadlines or schedules :END: The following commands allow you to quickly insert a deadline or to -schedule an item:[fn:24] +schedule an item:[fn:23] - {{{kbd(C-c C-d)}}} (~org-deadline~) :: @@ -6740,7 +6738,7 @@ *** Repeated tasks Some tasks need to be repeated again and again. Org mode helps to organize such tasks using a so-called repeater in a =DEADLINE=, -=SCHEDULED=, or plain timestamps[fn:25]. In the following example: +=SCHEDULED=, or plain timestamps[fn:24]. In the following example: #+begin_example ,** TODO Pay the rent @@ -6787,7 +6785,7 @@ *** Repeated tasks i.e., ~org-todo~ with a numeric prefix argument of =-1=. #+vindex: org-log-repeat -A timestamp[fn:26] is added under the deadline, to keep a record that +A timestamp[fn:25] is added under the deadline, to keep a record that you actually acted on the previous instance of this deadline. As a consequence of shifting the base date, this entry is no longer @@ -6857,7 +6855,7 @@ ** Clocking Work Time clock. When you stop working on that task, or when you mark the task done, the clock is stopped and the corresponding time interval is recorded. It also computes the total time spent on each -subtree[fn:27] of a project. And it remembers a history or tasks +subtree[fn:26] of a project. And it remembers a history or tasks recently clocked, so that you can jump quickly between a number of tasks absorbing your time. @@ -7131,7 +7129,7 @@ *** The clock table | =thisweek=, =lastweek=, =thisweek-N= | a relative week | | =thismonth=, =lastmonth=, =thismonth-N= | a relative month | | =thisyear=, =lastyear=, =thisyear-N= | a relative year | - | =untilnow=[fn:28] | all clocked time ever | + | =untilnow=[fn:27] | all clocked time ever | #+vindex: org-clock-display-default-range When this option is not set, Org falls back to the value in @@ -7337,7 +7335,7 @@ **** Resolving idle time #+vindex: org-clock-x11idle-program-name By customizing the variable ~org-clock-idle-time~ to some integer, such as 10 or 15, Emacs can alert you when you get back to your -computer after being idle for that many minutes[fn:29], and ask what +computer after being idle for that many minutes[fn:28], and ask what you want to do with the idle time. There will be a question waiting for you when you get back, indicating how much idle time has passed constantly updated with the current amount, as well as a set of @@ -8141,7 +8139,7 @@ **** Template elements - =(file+olp+datetree <file-spec> symbol-containing-list-of-strings)= :: - This target[fn:30] creates a heading in a date tree[fn:31] for + This target[fn:29] creates a heading in a date tree[fn:30] for today's date. If the optional outline path is given, the tree will be built under the node it is pointing to, instead of at top level. Check out the ~:time-prompt~ and ~:tree-type~ properties @@ -8465,7 +8463,7 @@ **** Template expansion | | =%:date= (message date header field) | | | =%:date-timestamp= (date as active timestamp) | | | =%:date-timestamp-inactive= (date as inactive timestamp) | -| | =%:fromto= (either "to NAME" or "from NAME")[fn:32] | +| | =%:fromto= (either "to NAME" or "from NAME")[fn:31] | | gnus | =%:group=, for messages also all email fields | | w3, w3m | =%:url= | | info | =%:file=, =%:node= | @@ -9132,7 +9130,7 @@ *** Weekly/daily agenda #+cindex: org-agenda, command Compile an agenda for the current week from a list of Org files. The agenda shows the entries for each day. With a numeric prefix - argument[fn:33]---like {{{kbd(C-u 2 1 M-x org-agenda a)}}}---you may + argument[fn:32]---like {{{kbd(C-u 2 1 M-x org-agenda a)}}}---you may set the number of days to be displayed. #+vindex: org-agenda-span @@ -9820,7 +9818,7 @@ *** Filtering/limiting agenda items entries. /Filters/ only change the visibility of items, are very fast and are -mostly used interactively[fn:34]. You can switch quickly between +mostly used interactively[fn:33]. You can switch quickly between different filters without having to recreate the agenda. /Limits/ on the other hand take effect before the agenda buffer is populated, so they are mostly useful when defined as local variables within custom @@ -10906,7 +10904,7 @@ *** Storing searches - {{{kbd(x)}}} :: - as a global search for agenda entries planned[fn:35] this week/day. + as a global search for agenda entries planned[fn:34] this week/day. - {{{kbd(y)}}} :: @@ -11092,7 +11090,7 @@ ** Exporting Agenda Views to install Hrvoje Nikšić's =htmlize.el= as an Emacs package from [[https://elpa.nongnu.org/][NonGNU ELPA]] or from [[https://github.com/hniksic/emacs-htmlize][Hrvoje Nikšić's repository]].], -Postscript, PDF[fn:36], and iCalendar files. If you +Postscript, PDF[fn:35], and iCalendar files. If you want to do this only occasionally, use the following command: - {{{kbd(C-x C-w)}}} (~org-agenda-write~) :: @@ -11519,7 +11517,7 @@ ** Embedded LaTeX Plain ASCII is normally sufficient for almost all note-taking. Exceptions include scientific notes, which often require mathematical -symbols and the occasional formula. LaTeX[fn:37] is widely used to +symbols and the occasional formula. LaTeX[fn:36] is widely used to typeset scientific documents. Org mode supports embedding LaTeX code into its files, because many academics are used to writing and reading LaTeX source code, and because it can be readily processed to produce @@ -11541,7 +11539,7 @@ *** LaTeX fragments LaTeX fragments do not need any special marking at all. The following snippets are identified as LaTeX source code: -- Environments of any kind[fn:38]. The only requirement is that the +- Environments of any kind[fn:37]. The only requirement is that the =\begin= statement appears on a new line, preceded by only whitespace. @@ -11590,7 +11588,7 @@ *** Previewing LaTeX fragments #+vindex: org-preview-latex-default-process If you have a working LaTeX installation and =dvipng=, =dvisvgm= or -=convert= installed[fn:39], LaTeX fragments can be processed to +=convert= installed[fn:38], LaTeX fragments can be processed to produce images of the typeset expressions to be used for inclusion while exporting to HTML (see [[*LaTeX fragments]]), or for inline previewing within Org mode. @@ -11747,9 +11745,9 @@ ** Literal Examples #+vindex: org-latex-src-block-backend If the example is source code from a programming language, or any other text that can be marked up by Font Lock in Emacs, you can ask -for the example to look like the fontified Emacs buffer[fn:40]. This +for the example to look like the fontified Emacs buffer[fn:39]. This is done with the code block, where you also need to specify the name -of the major mode that should be used to fontify the example[fn:41], +of the major mode that should be used to fontify the example[fn:40], see [[*Structure Templates]] for shortcuts to easily insert code blocks. #+cindex: @samp{BEGIN_SRC} @@ -12071,7 +12069,7 @@ ** Creating Footnotes #+begin_example The Org website[fn:1] now looks a lot better than it used to. ... -[fn:50] The link is: https://orgmode.org +[fn:49] The link is: https://orgmode.org #+end_example Org mode extends the number-based syntax to /named/ footnotes and @@ -12360,7 +12358,7 @@ ** Export Settings Language to use for translating certain strings (~org-export-default-language~). With =#+LANGUAGE: fr=, for example, Org translates =Table of contents= to the French =Table des - matières=[fn:42]. + matières=[fn:41]. - =SELECT_TAGS= :: @@ -12661,7 +12659,7 @@ ** Table of Contents #+cindex: excluding entries from table of contents #+cindex: table of contents, exclude entries Org includes both numbered and unnumbered headlines in the table of -contents[fn:43]. If you need to exclude an unnumbered headline, +contents[fn:42]. If you need to exclude an unnumbered headline, along with all its children, set the =UNNUMBERED= property to =notoc= value. @@ -12779,7 +12777,7 @@ ** Include Files | =#+INCLUDE: "~/.emacs" :lines "10-"= | Include lines from 10 to EOF | Inclusions may specify a file-link to extract an object matched by -~org-link-search~[fn:44] (see [[*Search Options in File Links]]). The +~org-link-search~[fn:43] (see [[*Search Options in File Links]]). The ranges for =:lines= keyword are relative to the requested element. Therefore, @@ -12821,7 +12819,7 @@ ** Macro Replacement : #+MACRO: name replacement text; $1, $2 are arguments #+texinfo: @noindent -which can be referenced using ={{{name(arg1, arg2)}}}=[fn:45]. For +which can be referenced using ={{{name(arg1, arg2)}}}=[fn:44]. For example #+begin_example @@ -13218,7 +13216,7 @@ *** Frames and Blocks in Beamer - Org exports a Beamer frame's objects as block environments. Org can enforce wrapping in special block types when =BEAMER_ENV= property - is set[fn:46]. For valid values see + is set[fn:45]. For valid values see ~org-beamer-environments-default~. To add more values, see ~org-beamer-environments-extra~. #+vindex: org-beamer-environments-default @@ -13850,7 +13848,7 @@ *** Math formatting in HTML export with Org[fn:: By default, Org loads MathJax from [[https://www.jsdelivr.com/][jsDelivr]], as recommended in [[https://docs.mathjax.org/en/latest/web/start.html][Getting Started -with MathJax Components]].][fn:47]. Some MathJax options can be +with MathJax Components]].][fn:46]. Some MathJax options can be configured via ~org-html-mathjax-options~, or in the buffer. For example, with the following settings, @@ -14175,7 +14173,7 @@ *** LaTeX/PDF export commands Org file. See the docstring for the ~org-latex-default-packages-alist~ for loading packages with certain compilers. Also see ~org-latex-bibtex-compiler~ to set the -bibliography compiler[fn:48]. +bibliography compiler[fn:47]. *** LaTeX specific export settings :PROPERTIES: @@ -18886,7 +18884,7 @@ *** How to evaluate source code #+cindex: @samp{CALL}, keyword #+vindex: org-babel-inline-result-wrap -By calling a named code block[fn:49] from an Org mode buffer or +By calling a named code block[fn:48] from an Org mode buffer or a table. Org can call the named code blocks from the current Org mode buffer or from the "Library of Babel" (see [[*Library of Babel]]). @@ -19094,7 +19092,7 @@ *** Collection - =value= :: - Default for most Babel libraries[fn:49]. Functional mode. Org + Default for most Babel libraries[fn:48]. Functional mode. Org gets the value by wrapping the code in a function definition in the language of the source block. That is why when using =:results value=, code should execute like a function and return a value. For @@ -19957,7 +19955,7 @@ ** Noweb Reference Syntax #+end_example Note that noweb expansion does not automatically carry over =:var= -header arguments[fn:50]. +header arguments[fn:49]. You may also include the contents of multiple blocks sharing a common =noweb-ref= header argument, which can be set at the file, subtree, @@ -20499,7 +20497,7 @@ *** Org Indent Mode To display the buffer in the indented view, activate Org Indent minor mode, using {{{kbd(M-x org-indent-mode)}}}. Text lines that are not headlines are prefixed with virtual spaces to vertically align with -the headline text[fn:51]. +the headline text[fn:50]. #+vindex: org-indent-indentation-per-level To make more horizontal space, the headlines are shifted by two @@ -20527,7 +20525,7 @@ *** Hard indentation It is possible to use hard spaces to achieve the indentation instead, if the bare ASCII file should have the indented look also outside -Emacs[fn:52]. With Org's support, you have to indent all lines to +Emacs[fn:51]. With Org's support, you have to indent all lines to line up with the outline headers. You would use these settings[fn:: ~org-adapt-indentation~ can also be set to ='headline-data=, in which case only data lines below the headline will be indented.]: @@ -21694,7 +21692,7 @@ *** Setting up the staging area #+vindex: org-mobile-directory The mobile application needs access to a file directory on -a server[fn:53] to interact with Emacs. Pass its location through +a server[fn:52] to interact with Emacs. Pass its location through the ~org-mobile-directory~ variable. If you can mount that directory locally just set the variable to point to that directory: @@ -21738,7 +21736,7 @@ *** Pushing to the mobile application targets.]. Push creates a special Org file =agendas.org= with custom agenda views -defined by the user[fn:54]. +defined by the user[fn:53]. Finally, Org writes the file =index.org=, containing links to other files. The mobile application reads this file first from the server @@ -22213,7 +22211,7 @@ *** A LaTeX example of radio tables To wrap a source table in LaTeX, use the =comment= environment provided by =comment.sty=[fn:: https://www.ctan.org/pkg/comment]. To activate it, put ~\usepackage{comment}~ in the document header. -Orgtbl mode inserts a radio table skeleton[fn:55] with the command +Orgtbl mode inserts a radio table skeleton[fn:54] with the command {{{kbd(M-x orgtbl-insert-radio-table)}}}, which prompts for a table name. For example, if =salesfigures= is the name, the template inserts: @@ -22233,7 +22231,7 @@ *** A LaTeX example of radio tables ~orgtbl-to-latex~ to convert the table to LaTeX format, then insert the table at the target (receive) location named =salesfigures=. Now the table is ready for data entry. It can even use spreadsheet -features[fn:56]: +features[fn:55]: #+begin_example % BEGIN RECEIVE ORGTBL salesfigures @@ -23448,65 +23446,59 @@ * Footnotes =STARTUP= options =constSI= and =constcgs= to set this value for the current buffer. -[fn:9] The printf reformatting is limited in precision because the -value passed to it is converted into an "integer" or "double". The -"integer" is limited in size by truncating the signed value to 32 -bits. The "double" is limited in precision to 64 bits overall which -leaves approximately 16 significant decimal digits. +[fn:9] Plain URIs are recognized only for a well-defined set of +schemes. See [[*External Links]]. Unlike URI syntax, they cannot +contain parenthesis or white spaces, either. URIs within angle +brackets have no such limitation. -[fn:10] Plain URIs are recognized only for a well-defined set of -schemes. See [[*External Links]]. Unlike URI syntax, they cannot contain -parenthesis or white spaces, either. URIs within angle brackets have -no such limitation. - -[fn:11] To insert a link targeting a headline, in-buffer completion +[fn:10] To insert a link targeting a headline, in-buffer completion can be used. Just type a star followed by a few optional letters into the buffer and press {{{kbd(M-TAB)}}}. All headlines in the current buffer are offered as completions. -[fn:12] The actual behavior of the search depends on the value of the +[fn:11] The actual behavior of the search depends on the value of the variable ~org-link-search-must-match-exact-headline~. If its value is ~nil~, then a fuzzy text search is done. If it is ~t~, then only the exact headline is matched, ignoring spaces and statistic cookies. If the value is ~query-to-create~, then an exact headline is searched; if it is not found, then the user is queried to create it. -[fn:13] Note that you do not have to use this command to insert +[fn:12] Note that you do not have to use this command to insert a link. Links in Org are plain text, and you can type or paste them straight into the buffer. By using this command, the links are automatically enclosed in double brackets, and you will be asked for the optional descriptive text. -[fn:14] After insertion of a stored link, the link will be removed +[fn:13] After insertion of a stored link, the link will be removed from the list of stored links. To keep it in the list for later use, use a triple {{{kbd(C-u)}}} prefix argument to {{{kbd(C-c C-l)}}}, or configure the option ~org-link-keep-stored-after-insertion~. -[fn:15] It is possible that Org mode records two timestamps when you +[fn:14] It is possible that Org mode records two timestamps when you are using both ~org-log-done~ and state change logging. However, it never prompts for two notes: if you have configured both, the state change recording note takes precedence and cancel the closing note. -[fn:16] Except for description lists. But you can allow it +[fn:15] Except for description lists. But you can allow it by modifying ~org-list-automatic-rules~ accordingly. -[fn:17] For both =TIMESTAMP= and =TIMESTAMP_IA=: the word "first" +[fn:16] For both =TIMESTAMP= and =TIMESTAMP_IA=: the word "first" refers to the first occurrence in the entry, not the earliest in time; the prefix =CLOCK:= at the beginning of a clock entry is considered a keyword in this context; and timestamps inside property drawers are ignored. -[fn:18] An age can be defined as a duration, using units defined in +[fn:17] An age can be defined as a duration, using units defined in ~org-duration-units~, e.g., =3d 1h=. If any value in the column is as such, the summary is also expressed as a duration. -[fn:19] The Org date format is inspired by the standard ISO 8601 +[fn:18] The Org date format is inspired by the standard ISO 8601 date/time format. To use an alternative format, see [[*Custom time format]]. The day name is optional when you type the date yourself. However, any date inserted or modified by Org adds that day name, for reading convenience. -[fn:20] When working with the standard diary expression functions, you +[fn:19] When working with the standard diary expression functions, you need to be very careful with the order of the arguments. That order depends evilly on the variable ~calendar-date-style~. For example, to specify a date December 1, 2005, the call might look like @@ -23519,38 +23511,38 @@ * Footnotes wherever applicable, independent of the value of ~calendar-date-style~. -[fn:21] See the variable ~org-read-date-prefer-future~. You may set +[fn:20] See the variable ~org-read-date-prefer-future~. You may set that variable to the symbol ~time~ to even make a time before now shift the date to tomorrow. -[fn:22] You can also use the calendar command {{{kbd(.)}}} to jump to +[fn:21] You can also use the calendar command {{{kbd(.)}}} to jump to today's date, but if you are inserting an hour specification for your timestamp, {{{kbd(.)}}} will then insert a dot after the hour. By contrast, {{{kbd(C-.)}}} will always jump to today's date. -[fn:23] It will still be listed on that date after it has been marked +[fn:22] It will still be listed on that date after it has been marked as done. If you do not like this, set the variable ~org-agenda-skip-scheduled-if-done~. -[fn:24] The =SCHEDULED= and =DEADLINE= dates are inserted on the line +[fn:23] The =SCHEDULED= and =DEADLINE= dates are inserted on the line right below the headline. Do not put any text between this line and the headline. -[fn:25] Org does not repeat inactive timestamps, however. See +[fn:24] Org does not repeat inactive timestamps, however. See [[*Timestamps]]. -[fn:26] You can change this using the option ~org-log-repeat~, or the +[fn:25] You can change this using the option ~org-log-repeat~, or the =STARTUP= options =logrepeat=, =lognoterepeat=, and =nologrepeat=. With =lognoterepeat=, you will also be prompted for a note. -[fn:27] Clocking only works if all headings are indented with less +[fn:26] Clocking only works if all headings are indented with less than 30 stars. This is a hard-coded limitation of ~lmax~ in ~org-clock-sum~. -[fn:28] When using ~:step~, ~untilnow~ starts from the beginning of +[fn:27] When using ~:step~, ~untilnow~ starts from the beginning of 2003, not the beginning of time. -[fn:29] On computers using macOS, idleness is based on actual user +[fn:28] On computers using macOS, idleness is based on actual user idleness, not just Emacs's idle time. For X11, you can install a utility program =x11idle.c=, available in the =org-contrib/= repository, or install the xprintidle package and set it to the @@ -23558,13 +23550,13 @@ * Footnotes to get the same general treatment of idleness. On other systems, idle time refers to Emacs idle time only. -[fn:30] Org used to offer four different targets for date/week tree +[fn:29] Org used to offer four different targets for date/week tree capture. Now, Org automatically translates these to use ~file+olp+datetree~, applying the ~:time-prompt~ and ~:tree-type~ properties. Please rewrite your date/week-tree targets using ~file+olp+datetree~ since the older targets are now deprecated. -[fn:31] A date tree is an outline structure with years on the highest +[fn:30] A date tree is an outline structure with years on the highest level, months or ISO weeks as sublevels and then dates on the lowest level. @@ -23578,15 +23570,15 @@ * Footnotes TODO state, priority, tags, statistics cookies, and COMMENT keywords are allowed in the tree structure. -[fn:32] This is always the other, not the user. See the variable +[fn:31] This is always the other, not the user. See the variable ~org-link-from-user-regexp~. -[fn:33] For backward compatibility, the universal prefix argument +[fn:32] For backward compatibility, the universal prefix argument {{{kbd(C-u)}}} causes all TODO entries to be listed before the agenda. This feature is deprecated, use the dedicated TODO list, or a block agenda instead (see [[*Block agenda]]). -[fn:34] Custom agenda commands can preset a filter by binding one of +[fn:33] Custom agenda commands can preset a filter by binding one of the variables ~org-agenda-tag-filter-preset~, ~org-agenda-category-filter-preset~, ~org-agenda-effort-filter-preset~ or ~org-agenda-regexp-filter-preset~ as an option. This filter is @@ -23596,74 +23588,74 @@ * Footnotes only set this in the global options section, not in the section of an individual block. -[fn:35] /Planned/ means here that these entries have some planning +[fn:34] /Planned/ means here that these entries have some planning information attached to them, like a timestamp, a scheduled or a deadline string. See ~org-agenda-entry-types~ on how to set what planning information is taken into account. -[fn:36] To create PDF output, the Ghostscript ps2pdf utility must be +[fn:35] To create PDF output, the Ghostscript ps2pdf utility must be installed on the system. Selecting a PDF file also creates the postscript file. -[fn:37] LaTeX is a macro system based on Donald\nbsp{}E.\nbsp{}Knuth's TeX +[fn:36] LaTeX is a macro system based on Donald\nbsp{}E.\nbsp{}Knuth's TeX system. Many of the features described here as "LaTeX" are really from TeX, but for simplicity I am blurring this distinction. -[fn:38] When MathJax is used, only the environments recognized by +[fn:37] When MathJax is used, only the environments recognized by MathJax are processed. When dvipng, dvisvgm, or ImageMagick suite is used to create images, any LaTeX environment is handled. -[fn:39] These are respectively available at +[fn:38] These are respectively available at [[https://sourceforge.net/projects/dvipng/]], [[http://dvisvgm.bplaced.net/]] and from the ImageMagick suite. Choose the converter by setting the variable ~org-preview-latex-default-process~ accordingly. -[fn:40] This works automatically for the HTML backend (it requires +[fn:39] This works automatically for the HTML backend (it requires version 1.34 of the =htmlize.el= package, which you need to install). Fontified code chunks in LaTeX can be achieved using either the [[https://www.ctan.org/pkg/listings][listings]] LaTeX package, [[https://www.ctan.org/pkg/minted][minted]] LaTeX package, or by using [[https://elpa.gnu.org/packages/engrave-faces.html][engrave-faces]]. Refer to ~org-latex-src-block-backend~ for details. -[fn:41] Source code in code blocks may also be evaluated either +[fn:40] Source code in code blocks may also be evaluated either interactively or on export. See [[*Working with Source Code]] for more information on evaluating code blocks. -[fn:42] For export to LaTeX format---or LaTeX-related formats such as +[fn:41] For export to LaTeX format---or LaTeX-related formats such as Beamer---, the =org-latex-package-alist= variable needs further configuration. See [[LaTeX specific export settings]]. -[fn:43] At the moment, some export backends do not obey this +[fn:42] At the moment, some export backends do not obey this specification. For example, LaTeX export excludes by default every unnumbered headline from the table of contents, unless you set the custom variable =org-latex-toc-include-unnumbered= to =t= or add =:UNNUMBERED: toc= to the section's properties. -[fn:44] Note that ~org-link-search-must-match-exact-headline~ is +[fn:43] Note that ~org-link-search-must-match-exact-headline~ is locally bound to non-~nil~. Therefore, ~org-link-search~ only matches headlines and named elements. -[fn:45] Since commas separate the arguments, commas within arguments +[fn:44] Since commas separate the arguments, commas within arguments have to be escaped with the backslash character. So only those backslash characters before a comma need escaping with another backslash character. -[fn:46] If =BEAMER_ENV= is set, Org export adds =B_environment= tag +[fn:45] If =BEAMER_ENV= is set, Org export adds =B_environment= tag to make it visible. The tag serves as a visual aid and has no semantic relevance. -[fn:47] Please note that exported formulas are part of an HTML +[fn:46] Please note that exported formulas are part of an HTML document, and that signs such as =<=, =>=, or =&= have special meanings. See [[https://docs.mathjax.org/en/latest/input/tex/html.html#tex-and-latex-in-html-documents][MathJax TeX and LaTeX in HTML documents]]. -[fn:48] This does not allow setting different bibliography compilers +[fn:47] This does not allow setting different bibliography compilers for different files. However, "smart" LaTeX compilation systems, such as latexmk, can select the correct bibliography compiler. -[fn:49] Actually, the constructs =call_<name>()= and =src_<lang>{}= +[fn:48] Actually, the constructs =call_<name>()= and =src_<lang>{}= are not evaluated when they appear in a keyword (see [[*Summary of In-Buffer Settings]]). -[fn:50] In the following example, attempting to evaluate +[fn:49] In the following example, attempting to evaluate the second code block will give an error, because the variables defined in the first code block will not be defined in the second block. @@ -23691,29 +23683,29 @@ * Footnotes ,#+END_SRC #+end_example -[fn:51] Org Indent mode also sets ~wrap-prefix~ correctly for +[fn:50] Org Indent mode also sets ~wrap-prefix~ correctly for indenting and wrapping long lines of headlines or text. This minor mode also handles Visual Line mode and directly applied settings through ~word-wrap~. -[fn:52] This works, but requires extra effort. Org Indent mode is +[fn:51] This works, but requires extra effort. Org Indent mode is more convenient for most applications. -[fn:53] For a server to host files, consider using a WebDAV server, +[fn:52] For a server to host files, consider using a WebDAV server, such as [[https://nextcloud.com][Nextcloud]]. Additional help is at this [[https://orgmode.org/worg/org-faq.html#mobileorg_webdav][FAQ entry]]. -[fn:54] While creating the agendas, Org mode forces =ID= properties +[fn:53] While creating the agendas, Org mode forces =ID= properties on all referenced entries, so that these entries can be uniquely identified if Org Mobile flags them for further action. To avoid setting properties configure the variable ~org-mobile-force-id-on-agenda-items~ to ~nil~. Org mode then relies on outline paths, assuming they are unique. -[fn:55] By default this works only for LaTeX, HTML, and Texinfo. +[fn:54] By default this works only for LaTeX, HTML, and Texinfo. Configure the variable ~orgtbl-radio-table-templates~ to install templates for other modes. -[fn:56] If the =TBLFM= keyword contains an odd number of dollar +[fn:55] If the =TBLFM= keyword contains an odd number of dollar characters, this may cause problems with Font Lock in LaTeX mode. As shown in the example you can fix this by adding an extra line inside the =comment= environment that is used to balance the dollar diff --git a/doc/orgcard.tex b/doc/orgcard.tex index f96b84d13..18c26695e 100644 --- a/doc/orgcard.tex +++ b/doc/orgcard.tex @@ -396,7 +396,7 @@ Formulas typed in field are executed by \kbd{TAB}, formula, \kbd{:=} a field formula. \key{Example: Add Col1 and Col2}{|=\$1+\$2 |} -\key{... with printf format specification}{|=\$1+\$2;\%.2f|} +\key{... with format specification}{|=\$1+\$2;\%.2f|} \key{... with constants from constants.el}{|=\$1/\$c/\$cm |} \metax{sum from 2nd to 3rd hline}{|:=vsum(@II..@III)|} \key{apply current column formula}{| = |} diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index 60d1e30bd..b720d1e65 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -1748,7 +1748,8 @@ (defcustom org-agenda-prefix-format sublists are `agenda', `todo', `search' and `tags'. The values are format strings. -This format works similar to a printf format, with the following meaning: +This format works similar to a `format' string, with the following +meaning: %c the category of the item, \"Diary\" for entries from the diary, or as given by the CATEGORY keyword or derived from the file name @@ -1762,9 +1763,9 @@ (defcustom org-agenda-prefix-format %(expression) Eval EXPRESSION and replace the control string by the result -All specifiers work basically like the standard `%s' of printf, but may -contain two additional characters: a question mark just after the `%' -and a whitespace/punctuation character just before the final letter. +All specifiers work basically like the standard `%s' of `format', but +may contain two additional characters: a question mark just after the +`%' and a whitespace/punctuation character just before the final letter. If the first character after `%' is a question mark, the entire field will only be included if the corresponding value applies to the current diff --git a/lisp/org-colview.el b/lisp/org-colview.el index f417b4812..fa54d629f 100644 --- a/lisp/org-colview.el +++ b/lisp/org-colview.el @@ -273,9 +273,9 @@ (defun org-columns--displayed-value (spec value &optional no-star) (`(,(or "DEADLINE" "SCHEDULED" "TIMESTAMP") . ,_) (replace-regexp-in-string org-ts-regexp "[\\1]" value)) (`(,_ ,_ ,_ ,_ nil) value) - ;; If PRINTF is set, assume we are displaying a number and + ;; If FMT is set, assume we are displaying a number and ;; obey to the format string. - (`(,_ ,_ ,_ ,_ ,printf) (format printf (string-to-number value))) + (`(,_ ,_ ,_ ,_ ,fmt) (format fmt (string-to-number value))) (_ (error "Invalid column specification format: %S" spec))))) (defun org-columns--collect-values (&optional compiled-fmt agenda-marker) @@ -1189,13 +1189,13 @@ (defun org-columns-uncompile-format (compiled) (mapconcat (lambda (spec) (pcase spec - (`(,prop ,title ,width ,op ,printf) + (`(,prop ,title ,width ,op ,fmt) (concat "%" (and width (number-to-string width)) prop (and title (not (equal prop title)) (format "(%s)" title)) (cond ((not op) nil) - (printf (format "{%s;%s}" op printf)) + (fmt (format "{%s;%s}" op fmt)) (t (format "{%s}" op))))))) compiled " ")) @@ -1208,7 +1208,7 @@ (defun org-columns-compile-format (fmt) title the title field for the columns, as a string width the column width in characters, can be nil for automatic width operator the summary operator, as a string, or nil -printf a printf format for computed values, as a string, or nil +format a `format' string for computed values, or nil This function updates `org-columns-current-fmt-compiled'." (setq org-columns-current-fmt-compiled nil) @@ -1227,11 +1227,11 @@ (defun org-columns-compile-format (fmt) (title (or (org-string-nw-p (match-string-no-properties 3 fmt)) prop)) (operator (org-string-nw-p (match-string-no-properties 4 fmt)))) (push (if (not operator) (list (upcase prop) title width nil nil) - (let (printf) + (let (fmt) (when (string-match ";" operator) - (setq printf (substring operator (match-end 0))) + (setq fmt (substring operator (match-end 0))) (setq operator (substring operator 0 (match-beginning 0)))) - (list (upcase prop) title width operator printf))) + (list (upcase prop) title width operator fmt))) org-columns-current-fmt-compiled))) (setq org-columns-current-fmt-compiled (nreverse org-columns-current-fmt-compiled)))) @@ -1278,7 +1278,7 @@ (defun org-columns--compute-spec (spec &optional update) (inminlevel lmax) (last-level lmax) (property (car spec)) - (printf (nth 4 spec)) + (fmt (nth 4 spec)) ;; Special properties cannot be collected nor summarized, as ;; they have their own way to be computed. Therefore, ignore ;; any operator attached to them. @@ -1310,7 +1310,7 @@ (defun org-columns--compute-spec (spec &optional update) (let ((values (cl-loop for l from (1+ level) to lmax append (aref lvals l)))) - (and values (funcall summarize values printf)))))) + (and values (funcall summarize values fmt)))))) ;; Leaf values are not summaries: do not mark them. (when summary (let* ((summaries-alist (get-text-property pos 'org-summaries)) @@ -1366,10 +1366,10 @@ (defun org-columns-compute-all () (org-columns--compute-spec spec (not (member property seen))) (push property seen))))) -(defun org-columns--summary-sum (values printf) +(defun org-columns--summary-sum (values fmt) "Compute the sum of VALUES. -When PRINTF is non-nil, use it to format the result." - (format (or printf "%s") (apply #'+ (mapcar #'string-to-number values)))) +When FMT is non-nil, use it to format the result." + (format (or fmt "%s") (apply #'+ (mapcar #'string-to-number values)))) (defun org-columns--summary-currencies (values _) "Compute the sum of VALUES, with two decimals." @@ -1398,22 +1398,22 @@ (defun org-columns--summary-checkbox-percent (check-boxes _) check-boxes)) (length check-boxes)))) -(defun org-columns--summary-min (values printf) +(defun org-columns--summary-min (values fmt) "Compute the minimum of VALUES. -When PRINTF is non-nil, use it to format the result." - (format (or printf "%s") +When FMT is non-nil, use it to format the result." + (format (or fmt "%s") (apply #'min (mapcar #'string-to-number values)))) -(defun org-columns--summary-max (values printf) +(defun org-columns--summary-max (values fmt) "Compute the maximum of VALUES. -When PRINTF is non-nil, use it to format the result." - (format (or printf "%s") +When FMT is non-nil, use it to format the result." + (format (or fmt "%s") (apply #'max (mapcar #'string-to-number values)))) -(defun org-columns--summary-mean (values printf) +(defun org-columns--summary-mean (values fmt) "Compute the mean of VALUES. -When PRINTF is non-nil, use it to format the result." - (format (or printf "%s") +When FMT is non-nil, use it to format the result." + (format (or fmt "%s") (/ (apply #'+ (mapcar #'string-to-number values)) (float (length values))))) @@ -1848,7 +1848,7 @@ (defun org-agenda-colview-summarize (cache) (line-end-position)))) (list spec date date))) (`(,_ ,_ ,_ nil ,_) (list spec "" "")) - (`(,_ ,_ ,_ ,operator ,printf) + (`(,_ ,_ ,_ ,operator ,fmt) (let* ((summarize (org-columns--summarize operator)) (values ;; Use real values for summary, not @@ -1856,10 +1856,10 @@ (defun org-agenda-colview-summarize (cache) (delq nil (mapcar (lambda (e) (org-string-nw-p - (nth 1 (assoc spec e)))) + (nth 1 (assoc spec e)))) entries))) (final (if values - (funcall summarize values printf) + (funcall summarize values fmt) ""))) (unless (equal final "") (put-text-property 0 (length final) diff --git a/lisp/org.el b/lisp/org.el index 809e9dd32..67d9679fe 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -639,14 +639,14 @@ (defconst org-clock-drawer-re (defconst org-heading-keyword-regexp-format "^\\(\\*+\\)\\(?: +%s\\)\\(?: +\\(.*?\\)\\)?[ \t]*$" - "Printf format for a regexp matching a headline with some keyword. + "`format' string for a regexp matching a headline with some keyword. This regexp will match the headline of any node which has the exact keyword that is put into the format. The keyword isn't in any group by default, but the stars and the body are.") (defconst org-heading-keyword-maybe-regexp-format "^\\(\\*+\\)\\(?: +%s\\)?\\(?: +\\(.*?\\)\\)?[ \t]*$" - "Printf format for a regexp matching a headline, possibly with some keyword. + "`format' string for a regexp matching a headline, possibly with some keyword. This regexp can match any headline with the specified keyword, or without a keyword. The keyword isn't in any group by default, but the stars and the body are.") @@ -4161,7 +4161,7 @@ (defvar-local org-complex-heading-regexp nil expected to be bound to nil when matching against this regexp.") (defvar-local org-complex-heading-regexp-format nil - "Printf format to make regexp to match an exact headline. + "`format' string to make regexp to match an exact headline. This regexp will match the headline of any node which has the exact headline text that is put into the format, but may have any TODO state, priority, tags, statistics cookies (at the beginning diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el index af4196e09..e49af206e 100644 --- a/lisp/ox-latex.el +++ b/lisp/ox-latex.el @@ -703,17 +703,17 @@ (defcustom org-latex-footnote-defined-format "\\textsuperscript{\\ref{%s}}" ;;;; Timestamps (defcustom org-latex-active-timestamp-format "\\textit{%s}" - "A printf format string to be applied to active timestamps." + "A `format' string to be applied to active timestamps." :group 'org-export-latex :type 'string) (defcustom org-latex-inactive-timestamp-format "\\textit{%s}" - "A printf format string to be applied to inactive timestamps." + "A `format' string to be applied to inactive timestamps." :group 'org-export-latex :type 'string) (defcustom org-latex-diary-timestamp-format "\\textit{%s}" - "A printf format string to be applied to diary timestamps." + "A `format' string to be applied to diary timestamps." :group 'org-export-latex :type 'string) diff --git a/lisp/ox-texinfo.el b/lisp/ox-texinfo.el index e3ecd23e6..253883b28 100644 --- a/lisp/ox-texinfo.el +++ b/lisp/ox-texinfo.el @@ -247,15 +247,15 @@ (defcustom org-texinfo-node-description-column 32 ;;;; Timestamps (defcustom org-texinfo-active-timestamp-format "@emph{%s}" - "A printf format string to be applied to active timestamps." + "A `format' string to be applied to active timestamps." :type 'string) (defcustom org-texinfo-inactive-timestamp-format "@emph{%s}" - "A printf format string to be applied to inactive timestamps." + "A `format' string to be applied to inactive timestamps." :type 'string) (defcustom org-texinfo-diary-timestamp-format "@emph{%s}" - "A printf format string to be applied to diary timestamps." + "A `format' string to be applied to diary timestamps." :type 'string) ;;;; Links diff --git a/testing/lisp/test-org-colview.el b/testing/lisp/test-org-colview.el index 3ed20fa01..1595fa40d 100644 --- a/testing/lisp/test-org-colview.el +++ b/testing/lisp/test-org-colview.el @@ -49,7 +49,7 @@ (ert-deftest test-org-colview/uncompile-format () (should (equal "%ITEM{+}" (org-columns-uncompile-format `(("ITEM" "ITEM" nil "+" nil))))) - ;; Read operator printf + ;; Read operator format (should (equal "%ITEM{+;%.1f}" (org-columns-uncompile-format `(("ITEM" "ITEM" nil "+" "%.1f")))))) @@ -86,7 +86,7 @@ (ert-deftest test-org-colview/compile-format () (equal `(("ITEM" "ITEM" nil "+" nil)) (org-columns-compile-format "%ITEM{+}"))) - ;; Read operator printf + ;; Read operator format (should (equal `(("ITEM" "ITEM" nil "+" "%.1f")) (org-columns-compile-format diff --git a/testing/lisp/test-org-table.el b/testing/lisp/test-org-table.el index 807ab7c84..cb52c56de 100644 --- a/testing/lisp/test-org-table.el +++ b/testing/lisp/test-org-table.el @@ -763,8 +763,8 @@ (ert-deftest test-org-table/sub-total () integer to float with \"+.0\" for sub-total of items c1 and c2. Sum empty fields as value zero but without ignoring them for \"vlen\" with format specifier \"EN\". Format possibly empty -results with the Calc formatter \"f-1\" instead of the printf -formatter \"%.1f\"." +results with the Calc formatter \"f-1\" instead of the `format' +string \"%.1f\"." (org-test-table-target-expect " |-------+---------+---------| base-commit: 4840a4ee846297cf07b00766601e82a08591031b -- Jacob S. Gordon [email protected] Please avoid sending me HTML emails and MS Office documents. https://useplaintext.email/#etiquette
Thanks, -- Jacob S. Gordon [email protected] Please avoid sending me HTML emails and MS Office documents. https://useplaintext.email/#etiquette
