On Mar 20, 2009, at 6:25 PM, Rainer Müller wrote:

Bradley Giesbrecht wrote:
This is what I ended up with to escape double quotes. I'm sure someone
here will show me a better way.

   set CCARGS      [concat ${CCARGS} -DUSE_SASL_AUTH -
DDEF_SERVER_SASL_TYPE=\\\\\\"dovecot\\\\\\"]

First, there is usually no need to do:
 set foo [concat $foo bar]
You can use append for strings and lappend for lists instead:
 lappend foo bar

In this specific case, I don't know why you had to put that many
backslashes there. How is it used further?

It can also end in funny results if you try to use a list as a string
without using join. See this short tclsh example for the difference:

$ tclsh
% set foo "bar"
bar
% lappend foo baz="qux"
bar baz=\"qux\"
% puts $foo
bar baz=\"qux\"


Thank you. This is what I needed, a backslash doublequote \". I'm adding dovecot_sasl variant to my local postfix. The existing Portfile uses a lot of concat so I just rolled with it.

% set CCARGS "-DSOMETHING"
-DSOMETHING
% append CCARGS \ -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\\"dovecot\\"
-DSOMETHING -DUSE_SASL_AUTH-DDEF_SERVER_SASL_TYPE=\"dovecot\"

Portfile:
variant dovecot_sasl description "add Dovecot SASL support " {
append CCARGS \ -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\\"dovecot\ \"
}


//Brad
_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-dev

Reply via email to