diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/actionhelper.c | 2 | ||||
| -rw-r--r-- | src/ckutil.c | 6 | ||||
| -rw-r--r-- | src/ckutil.h | 6 | ||||
| -rw-r--r-- | src/confparser.c | 12 | 
4 files changed, 17 insertions, 9 deletions
diff --git a/src/actionhelper.c b/src/actionhelper.c index 7d6aa8a..c4c1f34 100644 --- a/src/actionhelper.c +++ b/src/actionhelper.c @@ -65,5 +65,5 @@ edit_rc  edit_get_config_or_suggestions(cklist *args, char *ret) {    UNUSED(args);    UNUSED(ret); -  return ERC_ERR;   +  return ERC_ERR;  } diff --git a/src/ckutil.c b/src/ckutil.c index 74a6b00..880696b 100644 --- a/src/ckutil.c +++ b/src/ckutil.c @@ -10,6 +10,7 @@   * -------------------------------------------------------------------------- */  #include <ctype.h>  #include <dirent.h> +#include <limits.h>  #include <fcntl.h>  #include <libgen.h>  #include <sys/sendfile.h> @@ -39,11 +40,14 @@ void util_replace_slash_with_uscore(char *s) {    }  } -int util_file_exists(const char* path) { +int util_file_exists(const char* path, char *absPath) {    struct stat st = {0};    if (stat(path, &st) == -1) {      return 0;    } +  if (absPath != NULL) { +    realpath(path, absPath); +  }    return 1;  } diff --git a/src/ckutil.h b/src/ckutil.h index 8f5eda8..56b9cd9 100644 --- a/src/ckutil.h +++ b/src/ckutil.h @@ -65,8 +65,10 @@ extern int str_is_empty(const char *s);  /* Returns 1 if path is a directory, else returns 0. */  extern int util_is_dir(const char *path); -/* Returns 1 if file(or dir) exists, else returns 0. */ -extern int util_file_exists(const char *path); +/* Returns 1 if file(or dir) exists, else returns 0. + * Pass a char array in absPath to get the absolute path + * of the file it it exists. Pass NULL if no need. */ +extern int util_file_exists(const char *path, char *absPath);  /* Returns 1 if file(or dir) is readable and writable,   * else returns 0. */ diff --git a/src/confparser.c b/src/confparser.c index 5754dfa..948623c 100644 --- a/src/confparser.c +++ b/src/confparser.c @@ -139,17 +139,19 @@ void free_conf(Conf *conf) {  }  int init_create_config_file(UserOpt *opt) { -  if (!util_file_exists(list_get_at(opt->args, 0))) { +  char absVCdir[STR_L]; +  if (!util_file_exists(list_get_at(opt->args, 0), absVCdir)) {      printf("Version control directory: %s\ndoes not exist.\n", list_get_at(opt->args, 0));      return 1;    } -  if (!util_file_exists(list_get_at(opt->args, 1))) { +  char absSRdir[STR_L]; +  if (!util_file_exists(list_get_at(opt->args, 1), absSRdir)) {      printf("Secret directory: %s\ndoes not exist.\n", list_get_at(opt->args, 1));      return 1;    } -  if (!util_file_exists(opt->confDir)) { +  if (!util_file_exists(opt->confDir, NULL)) {      util_mkdir(opt->confDir);    } @@ -162,12 +164,12 @@ int init_create_config_file(UserOpt *opt) {    char tmp[200];    strcpy(tmp, "version_control_dir = "); -  strcat(tmp, list_get_at(opt->args, 0)); +  strcat(tmp, absVCdir);    strcat(tmp, "\n");    fputs(tmp, f);    strcpy(tmp, "secret_dir = "); -  strcat(tmp, list_get_at(opt->args, 1)); +  strcat(tmp, absSRdir);    strcat(tmp, "\n");    fputs(tmp, f);  | 
