RFR: 8296478: Rework 8282948 and 8282700 to use the new autoconf UTIL_ARG_WITH [v8]

Magnus Ihse Bursie ihse at openjdk.org
Fri Dec 9 13:08:03 UTC 2022


On Fri, 9 Dec 2022 12:56:08 GMT, Julian Waters <jwaters at openjdk.org> wrote:

>> make/autoconf/jdk-version.m4 line 94:
>> 
>>> 92:        properties of MS Windows binaries.],
>>> 93:     DEFAULT_DESC: [not specified],
>>> 94:     CHECK_VALUE: [
>> 
>> I see that this check is repeated all over the place. I suggest that you create a new `TYPE` for this. I suggest calling it `identifier`. Then you replace `TYPE: string` with `TYPE: identifier` in all places where we check that the value is non-empty and contains only printable characters. The type itself is declared in line 692 in util.m4 (and documented on line 582). Then you need to add a type checking method:
>> 
>> AC_DEFUN([UTIL_CHECK_TYPE_identifier],
>> [
>>   # Check that the argument is non-empty and only contains printable characters
>>   if test "x$1" = x; then
>>     FAILURE="Value cannot be empty"
>>   elif [ ! [[ $1 =~ ^[[:print:]]*$ ]] ]; then
>>     FAILURE="Value contains non-printing characters: $1"
>>   fi
>> ])
>
> Seems to me like a util function for CHECK_VALUE would be a slightly better approach than creating a new type, like the one we already have:
> 
> 
> ###############################################################################
> # Helper functions for CHECK_VALUE in ARG_WITH.
> AC_DEFUN([UTIL_CHECK_STRING_NON_EMPTY],
> [
>   if test "x$RESULT" = "x"; then
>     FAILURE="Value cannot be empty"
>   fi
> ])

Oh, I forgot about that one. Yes, a `UTIL_CHECK_STRING_PRINTABLE` or something like that would be an alternative approach. I'm not sure it's better than creating a separate type, but it's not worse either, so if you prefer it, do it. Just make sure it is a single function that tests both non-emptiness and correct character range and that the name of the function is not longer than the code. ;-)

-------------

PR: https://git.openjdk.org/jdk/pull/11020



More information about the build-dev mailing list