From: Fredrik Tolf Date: Tue, 4 Dec 2007 16:10:20 +0000 (+0100) Subject: Improve error reporting in dc-qcmd. X-Git-Tag: 1.1~31^2 X-Git-Url: http://dolda2000.com/gitweb/?p=doldaconnect.git;a=commitdiff_plain;h=fee53a96df5c6cbfeb289faa8968ac33da05dd93 Improve error reporting in dc-qcmd. --- diff --git a/lib/guile/dolcon-guile.c b/lib/guile/dolcon-guile.c index 2b3de3b..e3e6db8 100644 --- a/lib/guile/dolcon-guile.c +++ b/lib/guile/dolcon-guile.c @@ -262,7 +262,17 @@ static SCM scm_dc_qcmd(SCM argv, SCM callback) dc_freewcsarr(toks); if(cmd != NULL) free(cmd); - return(scm_from_int(tag)); + if(tag == -1) { + if(errno == ENOSYS) { + scm_error(scm_str2symbol("no-such-cmd"), "dc-qcmd", "Invalid command name", SCM_EOL, SCM_BOOL_F); + } else if(errno == EINVAL) { + scm_error(scm_str2symbol("illegal-escape"), "dc-qcmd", "Invalid escape sequence", SCM_EOL, SCM_BOOL_F); + } else { + scm_syserror("dc-qcmd"); + } + } else { + return(scm_from_int(tag)); + } } static void login_scmcb(int err, wchar_t *reason, struct scmcb *scmcb)