* [bug][babel] noweb gotcha
@ 2014-06-11 3:30 Charles Berry
2014-06-12 19:58 ` Eric Schulte
0 siblings, 1 reply; 4+ messages in thread
From: Charles Berry @ 2014-06-11 3:30 UTC (permalink / raw)
To: emacs-orgmode
The following
,----
| #+PROPERTY: tangle yes
|
| #+NAME: print-abc
| #+BEGIN_SRC emacs-lisp
| (format
| "<<%s>>" "abc")
| #+END_SRC
|
| #+NAME: print-def
| #+BEGIN_SRC emacs-lisp
| (concat
| "<<" "def" ">>")
| #+END_SRC
|
| #+BEGIN_SRC emacs-lisp :noweb yes
| <<print-abc>>
| <<print-def>>
| #+END_SRC
`----
tangles as
,----
| (format
| "<<%s>>" "abc")
|
| (concat
| "<<" "def" ">>")
|
| (format
| "<<%s>>" "abc")
| (concat
| "")
`----
Note that ""<<" "def" ">>" disappeared from (concat ...).
FWIW, adding quotes inside the constant string in org-babel-noweb-wrap:
"\\([^ \"\t\n][^\"]+?[^ \"\t]\\|[^ \"\t\n]\\)"
fixes this instance.
HTH,
Chuck
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [bug][babel] noweb gotcha
2014-06-11 3:30 [bug][babel] noweb gotcha Charles Berry
@ 2014-06-12 19:58 ` Eric Schulte
2014-06-12 21:21 ` Charles C. Berry
0 siblings, 1 reply; 4+ messages in thread
From: Eric Schulte @ 2014-06-12 19:58 UTC (permalink / raw)
To: Charles Berry; +Cc: emacs-orgmode
Charles Berry <ccberry@ucsd.edu> writes:
> The following
>
> ,----
> | #+PROPERTY: tangle yes
> |
> | #+NAME: print-abc
> | #+BEGIN_SRC emacs-lisp
> | (format
> | "<<%s>>" "abc")
> | #+END_SRC
> |
> | #+NAME: print-def
> | #+BEGIN_SRC emacs-lisp
> | (concat
> | "<<" "def" ">>")
> | #+END_SRC
> |
> | #+BEGIN_SRC emacs-lisp :noweb yes
> | <<print-abc>>
> | <<print-def>>
> | #+END_SRC
> `----
>
>
>
> tangles as
>
> ,----
> | (format
> | "<<%s>>" "abc")
> |
> | (concat
> | "<<" "def" ">>")
> |
> | (format
> | "<<%s>>" "abc")
> | (concat
> | "")
> `----
>
>
> Note that ""<<" "def" ">>" disappeared from (concat ...).
>
> FWIW, adding quotes inside the constant string in org-babel-noweb-wrap:
>
>
> "\\([^ \"\t\n][^\"]+?[^ \"\t]\\|[^ \"\t\n]\\)"
>
> fixes this instance.
>
Does this raise any error, or fail silently?
Thanks,
Eric
>
>
> HTH,
>
> Chuck
>
>
>
--
Eric Schulte
https://cs.unm.edu/~eschulte
PGP: 0x614CA05D (see https://u.fsf.org/yw)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [bug][babel] noweb gotcha
2014-06-12 19:58 ` Eric Schulte
@ 2014-06-12 21:21 ` Charles C. Berry
2014-06-12 23:41 ` Eric Schulte
0 siblings, 1 reply; 4+ messages in thread
From: Charles C. Berry @ 2014-06-12 21:21 UTC (permalink / raw)
To: Eric Schulte; +Cc: emacs-orgmode
On Thu, 12 Jun 2014, Eric Schulte wrote:
> Charles Berry <ccberry@ucsd.edu> writes:
>
>> The following
>>
>> ,----
>> | #+PROPERTY: tangle yes
>> |
>> | #+NAME: print-abc
>> | #+BEGIN_SRC emacs-lisp
>> | (format
>> | "<<%s>>" "abc")
>> | #+END_SRC
>> |
>> | #+NAME: print-def
>> | #+BEGIN_SRC emacs-lisp
>> | (concat
>> | "<<" "def" ">>")
>> | #+END_SRC
>> |
>> | #+BEGIN_SRC emacs-lisp :noweb yes
>> | <<print-abc>>
>> | <<print-def>>
>> | #+END_SRC
>> `----
>>
>>
>>
>> tangles as
>>
>> ,----
>> | (format
>> | "<<%s>>" "abc")
>> |
>> | (concat
>> | "<<" "def" ">>")
>> |
>> | (format
>> | "<<%s>>" "abc")
>> | (concat
>> | "")
>> `----
>>
>>
>> Note that ""<<" "def" ">>" disappeared from (concat ...).
>>
>> FWIW, adding quotes inside the constant string in org-babel-noweb-wrap:
>>
>>
>> "\\([^ \"\t\n][^\"]+?[^ \"\t]\\|[^ \"\t\n]\\)"
>>
>> fixes this instance.
>>
>
> Does this raise any error, or fail silently?
>
> Thanks,
> Eric
Alas, it fails silently -- producing the erroneous output.
I guess the issue is that
`(re-search-forward (org-babel-noweb-wrap) nil t)'
finds quoted expressions like
1. "<<abc>>"
2. (concat "<<" abc ">>")
FWIW,
(re-search-forward
(org-babel-noweb-wrap
"\\([^ \"\t\n][^\"]+?[^ \"\t]\\|[^ \"\t\n]\\)"
) nil t)
(adding quotes to the [^...] bits) takes care of example 2. Not sure
if example 1 is a feature or a bug - I sometimes use things like
"<<text-I-want>>"
so maybe modifying the regex is good enough?
OTOH, <<no-such-chunk>> has no effect. Maybe checking that the reference
actually resolves is better than tweaking the regexes.
HTH,
Chuck
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [bug][babel] noweb gotcha
2014-06-12 21:21 ` Charles C. Berry
@ 2014-06-12 23:41 ` Eric Schulte
0 siblings, 0 replies; 4+ messages in thread
From: Eric Schulte @ 2014-06-12 23:41 UTC (permalink / raw)
To: Charles C. Berry; +Cc: emacs-orgmode
"Charles C. Berry" <ccberry@ucsd.edu> writes:
> On Thu, 12 Jun 2014, Eric Schulte wrote:
>
>> Charles Berry <ccberry@ucsd.edu> writes:
>>
>>> The following
>>>
>>> ,----
>>> | #+PROPERTY: tangle yes
>>> |
>>> | #+NAME: print-abc
>>> | #+BEGIN_SRC emacs-lisp
>>> | (format
>>> | "<<%s>>" "abc")
>>> | #+END_SRC
>>> |
>>> | #+NAME: print-def
>>> | #+BEGIN_SRC emacs-lisp
>>> | (concat
>>> | "<<" "def" ">>")
>>> | #+END_SRC
>>> |
>>> | #+BEGIN_SRC emacs-lisp :noweb yes
>>> | <<print-abc>>
>>> | <<print-def>>
>>> | #+END_SRC
>>> `----
>>>
>>>
>>>
>>> tangles as
>>>
>>> ,----
>>> | (format
>>> | "<<%s>>" "abc")
>>> |
>>> | (concat
>>> | "<<" "def" ">>")
>>> |
>>> | (format
>>> | "<<%s>>" "abc")
>>> | (concat
>>> | "")
>>> `----
>>>
>>>
>>> Note that ""<<" "def" ">>" disappeared from (concat ...).
>>>
>>> FWIW, adding quotes inside the constant string in org-babel-noweb-wrap:
>>>
>>>
>>> "\\([^ \"\t\n][^\"]+?[^ \"\t]\\|[^ \"\t\n]\\)"
>>>
>>> fixes this instance.
>>>
>>
>> Does this raise any error, or fail silently?
>>
>> Thanks,
>> Eric
>
>
> Alas, it fails silently -- producing the erroneous output.
>
> I guess the issue is that
>
> `(re-search-forward (org-babel-noweb-wrap) nil t)'
>
> finds quoted expressions like
>
> 1. "<<abc>>"
> 2. (concat "<<" abc ">>")
>
> FWIW,
>
> (re-search-forward
> (org-babel-noweb-wrap
> "\\([^ \"\t\n][^\"]+?[^ \"\t]\\|[^ \"\t\n]\\)"
> ) nil t)
>
> (adding quotes to the [^...] bits) takes care of example 2. Not sure
> if example 1 is a feature or a bug - I sometimes use things like
>
> "<<text-I-want>>"
>
> so maybe modifying the regex is good enough?
>
> OTOH, <<no-such-chunk>> has no effect. Maybe checking that the
> reference actually resolves is better than tweaking the regexes.
>
So it is currently possible to raise errors when noweb references don't
resolve through the use of the `org-babel-noweb-error-all-langs'
variable. I just added `org-babel-noweb-error-all-langs' which may be
set to raise such errors regardless of the language of the code block.
Best,
Eric
>
>
> HTH,
>
> Chuck
>
>
--
Eric Schulte
https://cs.unm.edu/~eschulte
PGP: 0x614CA05D (see https://u.fsf.org/yw)
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-06-12 23:42 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-11 3:30 [bug][babel] noweb gotcha Charles Berry
2014-06-12 19:58 ` Eric Schulte
2014-06-12 21:21 ` Charles C. Berry
2014-06-12 23:41 ` Eric Schulte
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).