From a8543cf02e9e5edfa1a01640ffcbd3509d424315 Mon Sep 17 00:00:00 2001 From: obarun <eric@obarun.org> Date: Mon, 23 Mar 2020 09:10:39 +1100 Subject: [PATCH] pass to new integrer type for type variable --- src/lib66/backup_cmd_switcher.c | 42 +++++++++++++++++---------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/src/lib66/backup_cmd_switcher.c b/src/lib66/backup_cmd_switcher.c index 0cdc90b5..b6363f44 100644 --- a/src/lib66/backup_cmd_switcher.c +++ b/src/lib66/backup_cmd_switcher.c @@ -42,13 +42,14 @@ int backup_switcher(int argc, char const *const *argv,ssexec_t *info) uint32_t what = -1 ; int r ; struct stat st ; - + char const *tree = NULL ; - - verbosity = 1 ; - - change = back = type = 0 ; + verbosity = 1 ; + + change = back = 0 ; + type = -1 ; + { subgetopt_t l = SUBGETOPT_ZERO ; @@ -70,11 +71,11 @@ int backup_switcher(int argc, char const *const *argv,ssexec_t *info) } if (argc < 1) return -1 ; - if ((!change && !back) || !type) return -1 ; + if ((!change && !back) || type < 0) return -1 ; if (type < TYPE_CLASSIC || type > TYPE_ONESHOT) log_warn_return(LOG_EXIT_LESSONE,"unknown type for backup_switcher") ; - + tree = *argv ; size_t treelen = strlen(tree) ; @@ -106,20 +107,21 @@ int backup_switcher(int argc, char const *const *argv,ssexec_t *info) { if(lstat(sym,&st) < 0) return -1 ; if(!(S_ISLNK(st.st_mode))) - log_warn_return(LOG_EXIT_LESSONE,"find symlink: ",sym) ; - + log_warnusys_return(LOG_EXIT_LESSONE,"find symlink: ",sym) ; + stralloc symreal = STRALLOC_ZERO ; - + r = sarealpath(&symreal,sym) ; if (r < 0) log_warnusys_return(LOG_EXIT_LESSONE,"retrieve real path from: ",sym) ; - + char *b = NULL ; b = memmem(symreal.s,symreal.len,SS_BACKUP,SS_BACKUP_LEN) ; - + stralloc_free(&symreal) ; + if (!b) return SS_SWSRC ; - + return SS_SWBACK ; } @@ -186,29 +188,29 @@ int backup_cmd_switcher(unsigned int verbosity,char const *cmd,ssexec_t *info) int r ; size_t pos = 0 ; stralloc opts = STRALLOC_ZERO ; - + if (!sastr_clean_string(&opts,cmd)) log_warnu_return(LOG_EXIT_LESSONE,"clean: ",cmd) ; - + int newopts = 5 + sastr_len(&opts) ; char const *newargv[newopts] ; unsigned int m = 0 ; char fmt[UINT_FMT] ; fmt[uint_fmt(fmt, verbosity)] = 0 ; - + newargv[m++] = "backup_switcher" ; newargv[m++] = "-v" ; newargv[m++] = fmt ; - + for (;pos < opts.len; pos += strlen(opts.s + pos) + 1) newargv[m++] = opts.s + pos ; - + newargv[m++] = info->treename.s ; newargv[m++] = 0 ; - + r = backup_switcher(newopts,newargv,info) ; stralloc_free(&opts) ; - + return r ; } -- GitLab