On 08/11/2011 07:39 PM, Alan W. Irwin wrote:
> On 2011-08-11 17:20+0200 Michael Wild wrote:
> 
>> How about
>>
>> string(APPEND " /newstuff" xyz)
>>
>> It is not satisfactory in that it doesn't follow the semantics of all
>> the other string(...) commands which never modify their input.
> 
> I like that idea, but I would generalize it as
> 
> string(APPEND <string> <output_variable> <input> [<input>...])
> 
> to make it similar to other string commands.
> 
> BUT if no input is given take it from "${output_variable}" just as
> for your suggestion.
> 
> I would also make that same change for all other string commands of
> the same form, i.e., the various REGEX and REPLACE commands.  For those, I
> find the input string is often "${output_variable}" so I believe this
> generalization would be a useful convenience for all users of those
> string subcommands.  Furthermore, even though this generalization of
> REGEX et all is a major change, IIRC you get a wrong number
> of arguments now for, e.g.,
> 
> string(REGEX REPLACE <regular_expression> <replace_expression> <output
> variable>)
> 
> so I believe this generalization would be backwards compatible.
> 
> Alan

Making the <string> argument optional is not possible, since there is no
reliable way of determining whether it has been provided or not. Take

string(APPEND foo bar baz)

What is the intention here? Should the result be equivalent to

set(bar "foobaz")

or

set(foo "${foo}barbaz")

?

Michael
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to