[[project @ 2001-06-06 22:00:34 by ghouston] ghouston**20010606220034 Ignore-this: a8b5f0caf6d9f4ca9f809f180e69e418 * scsh-condition.scm (with-errno-handler*): bug fix, errors were not reported correctly. use (ice-9 stack-catch) to improve error messages. * filesys.scm (create-file-thing): use (ice-9 stack-catch) to improve error messages. (delete-filesys-object): handle errno/isdir, not errno/perm when deleting a file. otherwise directories can't be deleted: seems like a bug in scsh. ] hunk ./ChangeLog 1 +2001-06-06 Gary Houston + + * scsh-condition.scm (with-errno-handler*): bug fix, errors were + not reported correctly. use (ice-9 stack-catch) to improve + error messages. + * filesys.scm (create-file-thing): use (ice-9 stack-catch) to improve + error messages. + (delete-filesys-object): handle errno/isdir, not errno/perm when + deleting a file. otherwise directories can't be deleted: seems like + a bug in scsh. + hunk ./filesys.scm 6 + :use-module (ice-9 stack-catch) hunk ./filesys.scm 31 - ((errno/perm) #f) ; Return #f if directory + ((errno/isdir) #f) ; Return #f if directory + ((errno/perm) #f) hunk ./filesys.scm 56 - (catch 'system-error - (lambda () (makeit fname)) - (lambda (tag proc msg msg-args rest) - (let ((errno (car rest))) - (if (= errno errno/exist) - ;; FNAME exists. Nuke it and retry? - (cond ((if (eq? override? 'query) - (query) - override?) - (delete-filesys-object fname) - (loop #t)) - (else - (scm-error tag proc msg msg-args rest))) - (scm-error tag proc msg msg-args rest)))))))) + (stack-catch 'system-error + (lambda () (makeit fname)) + (lambda (tag proc msg msg-args rest) + (let ((errno (car rest))) + (if (= errno errno/exist) + ;; FNAME exists. Nuke it and retry? + (cond ((if (eq? override? 'query) + (query) + override?) + (delete-filesys-object fname) + (loop #t)) + (else + (throw tag proc msg msg-args rest))) + (throw tag proc msg msg-args rest)))))))) hunk ./scsh-condition.scm 5 + :use-module (ice-9 stack-catch) hunk ./scsh-condition.scm 22 - (catch 'system-error - thunk - (lambda args - (let ((errno (car (list-ref args 4))) - (message (car (list-ref args 3))) - (subr (list-ref args 1))) - (handler errno (list message - subr - '())) ; data - (throw 'system-error subr "%s" (list-ref args 3) #f))))) - + (stack-catch 'system-error + thunk + (lambda (key subr msg msg-args rest) + (let ((errno (car rest))) + (handler errno (list msg + subr + '())) ; data + (throw key subr msg msg-args rest)))))