From ffb07677cc6985997ad96064de3957183bb81997 Mon Sep 17 00:00:00 2001 From: Kaz Kyheku Date: Wed, 5 Feb 2020 18:47:53 -0800 Subject: chmod: type error in exception throw. * sysif.c (chmod_wrap): The uw_throw expression contains an otal format specifier ~o which requires an integer argument; but the mode can be a string now. Split into two cases. --- sysif.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'sysif.c') diff --git a/sysif.c b/sysif.c index d117729b..4f5da7c5 100644 --- a/sysif.c +++ b/sysif.c @@ -713,8 +713,15 @@ inval: if (err < 0) { int eno = errno; - uw_throwf(errno_to_file_error(eno), lit("~a ~a #o~o: ~d/~s"), - self, target, mode, num(eno), string_utf8(strerror(eno)), nao); + val error = errno_to_file_error(eno); + val errstr = string_utf8(strerror(eno)); + + if (stringp(mode)) + uw_throwf(error, lit("~a ~a ~a: ~d/~s"), + self, target, mode, num(eno), errstr, nao); + else + uw_throwf(error, lit("~a ~a #o~o: ~d/~s"), + self, target, mode, num(eno), errstr, nao); } return t; -- cgit v1.2.3