On 09/10/16 23:09, Allan McRae wrote:
> On 08/10/16 22:11, Rikard Falkeborn wrote:
>> 2016-10-04 10:21 GMT+02:00 Christian Hesse <l...@eworm.de>:
>>
>>> From: Christian Hesse <m...@eworm.de>
>>>
>>> We checked for empty array elements, but did not catch empty array. Add
>>> a check for that case as well.
>>>
>>> Signed-off-by: Christian Hesse <m...@eworm.de>
>>> ---
>>>  scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in | 5 +++++
>>>  1 file changed, 5 insertions(+)
>>>
>>> diff --git a/scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in
>>> b/scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in
>>> index a044082..2696afa 100644
>>> --- a/scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in
>>> +++ b/scripts/libmakepkg/lint_pkgbuild/pkgname.sh.in
>>> @@ -32,6 +32,11 @@ lint_pkgbuild_functions+=('lint_pkgname')
>>>  lint_pkgname() {
>>>         local ret=0 i
>>>
>>> +       if [[ -z "${pkgname[0]}" ]]; then
>>> +               error "$(gettext "%s is not allowed to be empty.")"
>>> "pkgname"
>>> +               ret=1
>>> +       fi
>>> +
>>>         for i in "${pkgname[@]}"; do
>>>                 if [[ -z $i ]]; then
>>>                         error "$(gettext "%s is not allowed to be
>>> empty.")" "pkgname"
>>> --
>>> 2.10.0
>>>
>>
>> If pkgname="", this will cause the error message to be printed twice (once
>> in the added if-statement and once in the loop). Should we just return
>> immediately instead of setting ret=1?
>>
> 
> Changed the test to:
> 
>       if (( ${#pkgname[@]} == 0 )) ; then
> 
> then it catches and prints one message for:
> 
> pkgname=
> pkgname=''
> pkgname=()
> pkgname=('')
> 

And based on discussion on IRC, further changed to:

        if [[ -z ${pkgname[@]} ]]; then
                error "$(gettext "%s is not allowed to be empty.")" "pkgname"
                return 1
        fi


This also detects when pkgname is not defined.

A

Reply via email to