bug-texinfo
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fwd: REVIEW REQUEST - user manual generation


From: Vincent Belaïche
Subject: Re: Fwd: REVIEW REQUEST - user manual generation
Date: Mon, 06 Jun 2016 12:13:48 +0200

Hello Gavin,

Answers below...

Le 05/06/2016 à 00:29, Gavin Smith a écrit :
> On 4 June 2016 at 22:40, Vincent Belaïche <address@hidden> wrote:
>> These two things also work:
>>
>> --8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
>>   in_input_funnies=`echo "$in_input" \
>>     | $SED -e 's![^}#$%&^_{~]!!g; s!\(.\)!\1\'"
>> "'!g' \
>>     | uniq`
>> --8<----8<----8<----8<----8<--  end  -->8---->8---->8---->8---->8----
>>
>> --8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
>>   in_input_funnies=`echo "$in_input" \
>>     | $SED -e 's![^}#$%&^_{~]!!g; s!\(.\)!\1\''
>> ''!g' \
>>     | uniq`
>> --8<----8<----8<----8<----8<--  end  -->8---->8---->8---->8---->8----
>>
>> but I prefer the one with "$newline" to keep the sed command on the same
>> line.
>
> Nice idea to hide it in a variable.
>

Well, this is not my idea, this is already a tricks that texi2dvi does
with the escape variable.

> I'd come up with
>
> in_input_funnies=`echo "$in_input" \
>     | $SED -e 's![^}#$%&^_{~]!!g; s!\(.\)!\1'\\\\'
> ''!g' \
>     | uniq`
>

You don't need the '' at the beginning of 3rd line, the following is OK:

--8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
  in_input_funnies=`echo "$in_input" \
    | $SED -e 's![^}#$%&^_{~]!!g; s!\(.\)!\1'\\\\'
!g' \
    | uniq`
--8<----8<----8<----8<----8<--  end  -->8---->8---->8---->8---->8----

> which is fairly similar to the two examples above you gave, except
> it's less clear. (Four backslashes because backslash escaped once for
> the shell, and once for the ``-expression.)

You can avoid the quadruple backslash by hiding the backslash in $escape
variable, like this:

--8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
  in_input_funnies=`echo "$in_input" \
    | $SED -e 's![^}#$%&^_{~]!!g; s!\(.\)!\1'$escape'
!g' \
    | uniq`
--8<----8<----8<----8<----8<--  end  -->8---->8---->8---->8---->8----

This would be more consistent with what is done in the rest of the
script --- well there are many places where \\ could be avoided. For
instance in function index_file_p using simple quotes instead of double
quotes would allow to replace all the \\'s by \'s. Similar for the first
\\ in function xref_file_p. Even in the definition of variable escape it
would be simpler to just write:

--8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
escape='\'
--8<----8<----8<----8<----8<--  end  -->8---->8---->8---->8---->8----

rather than the current:
--8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
escape="\\"
--8<----8<----8<----8<----8<--  end  -->8---->8---->8---->8---->8----

Anyway, this is a outside the scope of this discussion.

FYI, I have submitted the following bugs/feature-requests to MikTeX ---
let us not loose from sight that the initial problem raised by Stephen
was spaces in filenames and not supporting any kind of other funny
characters --- even though they are funny.

https://sourceforge.net/p/miktex/bugs/2504/
https://sourceforge.net/p/miktex/feature-requests/336/

VBR,
        Vincent



reply via email to

[Prev in Thread] Current Thread [Next in Thread]