|
|
|
|
#1 |
|
Member
Join Date: Feb 2005
Posts: 51
|
Passing in quotes as an argument to a macro
Hi,
I've got a function which takes in a string as an argument. I want to pass in the string '"' -- that is, single quotes. Problem is NSIS gives me: Error: unterminated string parsing line at macro:IndexOf:2 Error in macro IndexOf on macroline 2 and my macro is defined as: !macro IndexOf String SubString StartingIndex Result Push "${String}" Push "${SubString}" Push "${StartingIndex}" Call IndexOf Pop "${Result}" !macroend !define IndexOf "!insertmacro IndexOf" So obviously Push "${SubString}" is failing but I have no idea how to fix it. Passing in non-quote characters works fine. I also tried "$\"" as an argument and it fails too. Gili |
|
|
|
|
|
#2 |
|
Member
Join Date: Feb 2005
Posts: 51
|
Using backticks for Push worked, but it feels like a hack. What happens if the input string actually contains backtick characters?
|
|
|
|
|
|
#3 |
|
Senior Member
Join Date: Oct 2005
Posts: 189
|
Does this work for you?
code: |
|
|
|
|
|
#4 |
|
Member
Join Date: Feb 2005
Posts: 51
|
Yes, that testcase works. Not sure why Push would fail then...
|
|
|
|
|
|
#5 |
|
Moderator
Join Date: Nov 2002
Location: Surrey, England
Posts: 8,434
|
Tried?
Push '${String}' Push '${SubString}' Push '${StartingIndex}' Call IndexOf Pop '${Result}' -Stu |
|
|
|
|
|
#6 |
|
Major Dude
|
or even use ``
![]() as ' and " are quite common. but nsis supports ` as third quotation mark. hand by comm@nder21 ---------- WiKi pages:CreateInternetShortcut|Enhanced FindWindow|Parse CSV-Data|Open/Close CD-Drive|Installer without Icon|Vista application compatibility |
|
|
|
|
|
#7 |
|
Member
Join Date: Feb 2005
Posts: 51
|
My point though is that there should be a way to generally quote a variable without having to know what quotes are used inside. Why can't NSIS know that "$someVar" means that it should get quoted regardless of the type of quotes inside?
|
|
|
|
![]() |
|
|||||||
| Thread Tools | Search this Thread |
| Display Modes | |
|
|