On Mar 31, 2013 4:50 PM, "Lex Trotman" <[email protected]> wrote:
>
>
>
>
> On 1 April 2013 05:06, Henrik Bengtsson <[email protected]>
wrote:
>>
>> Hi Lex,
>>
>> thanks for the quick reply.
>>
>> On Sat, Mar 30, 2013 at 5:08 PM, Lex Trotman <[email protected]> wrote:
>> > Hi Henrick,
>> >
>> > Thanks for the excellent analysis.
>> >
>> >
>> > On 31 March 2013 06:17, Henrik Bengtsson <[email protected]>
wrote:
>> >>
>> >> Hi,
>> >>
>> >> it appears that asciidoc v8.6.8 have problems encoding image files if
they
>> >> have commas in their names; probably an issue with 'sys3'.
>> >>
>> >> EXAMPLE:
>> >>
>> >> C:\tmp>echo "image:foo,bar.png[]" > test.txt
>> >>
>> >> C:\tmp>cat test.txt
>> >> image:foo,foo.png[]
>> >>
>> >> C:\tmp>dir "foo,bar.png"
>> >> 03/30/2013 12:01 PM 2,494 note,foo.png
>> >>
>> >> C:\tmp>asciidoc test.txt
>> >> ## <img src="foo,bar.png" alt="foo,bar.png" />
>> >>
>> >> C:\tmp>asciidoc -a data-uri test.txt
>> >> The system cannot find the file specified.
>> >> asciidoc: WARNING: test.txt: line 1: {sys3:"C:\Python27\python.exe"
-u -c
>> >> "import base64,sys; base64.encode(sys.stdin,sys.stdout)" <
>> >> "C:\tmp\foo,bar.png"}: non-zero exit status
>> >>
>> >> Using an image filename without a comma and things work just fine.
>> >> (Before anyone suggests not to use commas in the first place; they are
>> >>
>> >>
>> >> TROUBLESHOOTING:
>> >> Making that system call at the command line does indeed work:
>> >>
>> >> C:\tmp>"C:\Python27\python.exe" -u -c "import base64,sys;
>> >> base64.encode(sys.stdin,sys.stdout)" < "C:\tmp\foo,bar.png"
>> >> iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABX[...]
>> >> [...]yCoCXW14B8HLLvwDd67nwZIEPdgAAAABJRU5ErkJggg==
>> >>
>> >> Could it be that 'sys3' drops/does not pass the filename with quotes?
>> >> Indeed, when unquoting the filename I get the same error message as
above;
>> >
>> >
>> > Yes, on NT type operating systems only, the quotes that do not
surround a
>> > space are dropped, the comment in the code is:
>> >
>> > # Remove redundant quoting -- this is not just
>> > # cosmetic, unnecessary quoting appears to cause
>> > # command line truncation.
>> >
>> > It would appear that "unnecessary" is not just "without spaces" but
"without
>> > spaces or commas"? Are there other characters that require quoting? I
>> > can't find any exact version of such definition, do you know what it
is?
>>
>> I've checked with the following 13 special characters " ,#$@[]^_`{}~"
>> (=20 2c 23 24 40 5b 5d 5e 5f 60 7b 7d 7e). Out of those, you need to
>> quote pathnames that have " " (20) , "," (2c), and "^" (5e).
>>
>> Here's a patch:
>>
>> x:\_GITHUB\asciidoc>hg diff asciidoc.py
>> diff -r 1ebcbfc71e2f asciidoc.py
>> --- a/asciidoc.py Sun Feb 17 10:37:43 2013 +1300
>> +++ b/asciidoc.py Sun Mar 31 11:04:09 2013 -0700
>> @@ -815,7 +815,7 @@
>> # Remove redundant quoting -- this is not just
>> # cosmetic, unnecessary quoting appears to cause
>> # command line truncation.
>> - filter_cmd = re.sub(r'"([^ ]+?)"', r'\1', filter_cmd)
>> + filter_cmd = re.sub(r'"([^^ ,]+?)"', r'\1', filter_cmd)
>
>
> So just to confirm, only the circumflex, space and comma needs quoting on
windows?
Correct.
Henrik
>
> Cheers
> Lex
>
>
>
>>
>> try:
>> p = subprocess.Popen(filter_cmd, shell=True,
>> stdin=subprocess.PIPE, stdout=subprocess.PIPE)
>> @@ -893,7 +893,7 @@
>> # Remove redundant quoting -- this is not just
>> # cosmetic, unnecessary quoting appears to cause
>> # command line truncation.
>> - cmd = re.sub(r'"([^ ]+?)"', r'\1', cmd)
>> + cmd = re.sub(r'"([^^ ,]+?)"', r'\1', cmd)
>> message.verbose('shelling: %s' % cmd)
>> if os.system(cmd):
>> message.warning('%s: non-zero exit status' % syntax)
>>
>> Cheers,
>>
>> Henrik
>>
>> >
>> > Cheers
>> > Lex
>> >
>> >
>> >>
>> >>
>> >> C:\tmp>"C:\Python27\python.exe" -u -c "import base64,sys;
>> >> base64.encode(sys.stdin,sys.stdout)" < C:\tmp\foo,bar.png
>> >> The system cannot find the file specified.
>> >>
>> >> This may or may not be Windows only issue.
>> >>
>> >>
>> >> SESSION INFO (Windows 7 64-bit Ultimate):
>> >>
>> >> > asciidoc --version
>> >> asciidoc 8.6.8
>> >>
>> >> > "C:\Python27\python.exe" --version
>> >> Python 2.7.4rc1
>> >>
>> >>
>> >> Thanks,
>> >>
>> >> Henrik
>> >>
>> >> --
>> >> You received this message because you are subscribed to the Google
Groups
>> >> "asciidoc" group.
>> >> To unsubscribe from this group and stop receiving emails from it,
send an
>> >> email to [email protected].
>> >> To post to this group, send email to [email protected].
>> >> Visit this group at http://groups.google.com/group/asciidoc?hl=en.
>> >> For more options, visit https://groups.google.com/groups/opt_out.
>> >>
>> >>
>> >
>> >
>> > --
>> > You received this message because you are subscribed to the Google
Groups
>> > "asciidoc" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
an
>> > email to [email protected].
>> > To post to this group, send email to [email protected].
>> > Visit this group at http://groups.google.com/group/asciidoc?hl=en.
>> > For more options, visit https://groups.google.com/groups/opt_out.
>> >
>> >
>>
>> --
>> You received this message because you are subscribed to the Google
Groups "asciidoc" group.
>> To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/asciidoc?hl=en.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>>
>
> --
> You received this message because you are subscribed to the Google Groups
"asciidoc" group.
> To unsubscribe from this group and stop receiving emails from it, send an
email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/asciidoc?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
--
You received this message because you are subscribed to the Google Groups
"asciidoc" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/asciidoc?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.