Winamp & Shoutcast Forums

Winamp & Shoutcast Forums (http://forums.winamp.com/index.php)
-   NSIS Discussion (http://forums.winamp.com/forumdisplay.php?f=65)
-   -   Passing in quotes as an argument to a macro (http://forums.winamp.com/showthread.php?t=241134)

cowwoc 17th March 2006 17:44

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

cowwoc 17th March 2006 17:47

Using backticks for Push worked, but it feels like a hack. What happens if the input string actually contains backtick characters? :)

dienjd 17th March 2006 17:51

Does this work for you?
code:

Name "quotetest"
Outfile "quotetest.exe"

!macro test param1
MessageBox MB_OK "${param1}"
!macroend

Section ""
StrCpy $0 '"'
!insertmacro test "$0"
SectionEnd


cowwoc 17th March 2006 17:55

Yes, that testcase works. Not sure why Push would fail then...

Afrow UK 18th March 2006 09:07

Tried?
Push '${String}'
Push '${SubString}'
Push '${StartingIndex}'
Call IndexOf
Pop '${Result}'

-Stu

Comm@nder21 18th March 2006 16:24

or even use `` :)

as ' and " are quite common. but nsis supports ` as third quotation mark.

cowwoc 18th March 2006 23:35

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?


All times are GMT. The time now is 17:43.

Copyright © 1999 - 2010 Nullsoft. All Rights Reserved.