about summary refs log tree commit diff
path: root/Src/builtin.c
diff options
context:
space:
mode:
authorOliver Kiddle <opk@users.sourceforge.net>2001-10-16 11:16:04 +0000
committerOliver Kiddle <opk@users.sourceforge.net>2001-10-16 11:16:04 +0000
commit4aaa5b3257fe43fc8a68d47b9e16b571fdb570aa (patch)
tree47dbcd2cabe6f7e0496b7392f834bbaf19f80f05 /Src/builtin.c
parent6ef62b386b398cac6e7285657d7bbf4e7cf98a5c (diff)
downloadzsh-4aaa5b3257fe43fc8a68d47b9e16b571fdb570aa.tar.gz
zsh-4aaa5b3257fe43fc8a68d47b9e16b571fdb570aa.tar.xz
zsh-4aaa5b3257fe43fc8a68d47b9e16b571fdb570aa.zip
fix return code and tests of printf and comment above bslashquote func (16064)
Diffstat (limited to 'Src/builtin.c')
-rw-r--r--Src/builtin.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/Src/builtin.c b/Src/builtin.c
index 8b05759b7..113c5931e 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -3125,6 +3125,10 @@ bin_print(char *name, char **args, char *ops, int func)
 
 	    if (*c == '*') {
 		if (*args) width = (int)mathevali(*args++);
+		if (errflag) {
+	    	    errflag = 0;
+		    ret = 1;
+		}
 		c++;
 	    } else if (idigit(*c)) {
 		width = strtoul(c, &endptr, 0);
@@ -3136,6 +3140,10 @@ bin_print(char *name, char **args, char *ops, int func)
 		c++;
 		if (*c == '*') {
 		    prec = (*args) ? (int)mathevali(*args++) : 0;
+		    if (errflag) {
+	    	    	errflag = 0;
+			ret = 1;
+		    }
 		    c++;
 		} else if (idigit(*c)) {
 		    prec = strtoul(c, &endptr, 0);
@@ -3147,7 +3155,6 @@ bin_print(char *name, char **args, char *ops, int func)
 	    /* ignore any size modifier */
 	    if (*c == 'l' || *c == 'L' || *c == 'h') c++;
 
-	    errflag = 0;
 	    d[1] = '\0';
 	    switch (*d = *c) {
 	    case 'c':
@@ -3226,6 +3233,7 @@ bin_print(char *name, char **args, char *ops, int func)
 			if (errflag) {
 			    zlongval = 0;
 			    errflag = 0;
+			    ret = 1;
 			}
 			print_val(zlongval)
 			break;
@@ -3238,11 +3246,12 @@ bin_print(char *name, char **args, char *ops, int func)
 			if (errflag) {
 			    doubleval = 0;
 			    errflag = 0;
+			    ret = 1;
 			}
 			print_val(doubleval)
 			break;
 		    case 3:
-#ifdef ZSH_64_BIT_TYPE
+#ifdef ZSH_64_BIT_UTYPE
  		    	*d++ = 'l';
 #endif
 		    	*d++ = 'l', *d++ = *c, *d = '\0';
@@ -3250,6 +3259,7 @@ bin_print(char *name, char **args, char *ops, int func)
 			if (errflag) {
 			    doubleval = 0;
 			    errflag = 0;
+			    ret = 1;
 			}
 			print_val(zulongval)
 		    }