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