[cmake-developers] string SUBSTRING TRUNCATE mode

Robert Maynard robert.maynard at kitware.com
Wed Nov 12 09:54:54 EST 2014


I vote for the implicit behavior of SUBSTRING for it to tolerate
out-of-range indexes.

On Wed, Nov 12, 2014 at 8:56 AM, Brad King <brad.king at kitware.com> wrote:
> On 11/11/2014 06:16 PM, Domen Vrankar wrote:
>> string(SUBSTRING <string> <begin> <length> <output variable> [TRUNCATE])
> [snip]
>> string(SUBSTRING ${test_str} 2 6 substr TRUNCATE)
>>
>> If length is set to a higher value than the length of the original
>> string the substring is still created but its end is the end of
>> original string.
>
> The functionality makes sense.  Python 'abcd'[2:6] does this
> automatically.  I agree the name TRUNCATE is hard to follow
> because I had to read the example to understand the command.
> SHORTEN may have the same problem.  Other brainstorming ideas:
>
>  (CLIP|INTERSECT|TOLERANT)(_RANGE)?
>
> Another option is to just start tolerating out-of-range indexes.
> Since it is currently an error there would be no compatibility
> problem (except that someone may write code using a newer CMake
> that then breaks on an older version).
>
>> If this functionality would be welcome I'll write the tests and
>> documentation.
>
> Yes.  After the naming bikeshed is painted then tests can go in
> Tests/RunCMake/string/*
>
> Thanks,
> -Brad
>
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake-developers


More information about the cmake-developers mailing list