diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/easydir.c | 2 | ||||
| -rw-r--r-- | src/handerror.h | 8 | ||||
| -rw-r--r-- | src/implementation.c | 2 | ||||
| -rw-r--r-- | src/main.c | 30 | ||||
| -rw-r--r-- | src/tree.c | 15 | ||||
| -rw-r--r-- | src/xstd.c (renamed from src/handerror.c) | 15 | ||||
| -rw-r--r-- | src/xstd.h | 10 | 
7 files changed, 43 insertions, 39 deletions
| diff --git a/src/easydir.c b/src/easydir.c index 6de77bc..e1a4394 100644 --- a/src/easydir.c +++ b/src/easydir.c @@ -6,7 +6,7 @@  #include <errno.h>  #include "easydir.h" -#include "handerror.h" +#include "xstd.h"  int checkFileExist(char *source)  { diff --git a/src/handerror.h b/src/handerror.h deleted file mode 100644 index 09c5106..0000000 --- a/src/handerror.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef HANDERROR_H -#define HANDERROR_H - -void easyFork(char *name, char *arguments[]); -void callError(int num); -void printError(const char *text); - -#endif
\ No newline at end of file diff --git a/src/implementation.c b/src/implementation.c index 334b7e1..d8b0973 100644 --- a/src/implementation.c +++ b/src/implementation.c @@ -8,7 +8,7 @@  #include <errno.h>  #include <sys/stat.h> -#include "handerror.h" +#include "xstd.h"  #include "easydir.h"  #include "implementation.h" @@ -17,7 +17,7 @@  #include <sys/stat.h>  #include "easydir.h" -#include "handerror.h" +#include "xstd.h"  #include "implementation.h"  #include "exec-cmd.h"  #include "tree.h" @@ -531,25 +531,25 @@ static struct cmd_struct *get_cmd(const char *name)  	return NULL;  } -static int gotoMainDir() +static int goto_maindir()  { -	char *env_home = getenv("HOME"); -	int len_rootdir = strlen(env_home) + 1 + strlen(LOCKPASS_DIR) + 1; -	char *rootdir = malloc(sizeof(char) * len_rootdir); -	sprintf(rootdir, "%s/%s", env_home, LOCKPASS_DIR); - +	int ret = 0; +	char *rootdir = xstrcat(getenv("HOME"), LOCKPASS_DIR, "/");  	if(chdir(rootdir)) // failed  	{  		// create main directory: -		if(mkdir(rootdir, S_IRWXU)) { -			if(errno != EEXIST) -				errprint("mkdir() failed\n"); +		int res = mkdir(rootdir, S_IRWXU); +		if(res) { +			if(errno != EEXIST) { +				perror("mkdir"); +				ret = 1; +			}  		} - -		// try again: -		return chdir(rootdir); +		else // try again: +			ret = chdir(rootdir);  	} +	free(rootdir);  	return 0;  } @@ -558,8 +558,8 @@ int main(int argc, char *argv[])  	if(!isatty(STDIN_FILENO))  		errprint("Please, use a terminal to run this application\n"); -	if(gotoMainDir()) -		errprint("chdir() failed\n"); +	if(goto_maindir()) +		perror("chdir");  	int ret = 0;  	char *cmd = (argv[1] != NULL) ? argv[1] : ""; @@ -6,6 +6,7 @@  #include <sys/stat.h>  #include "tree.h" +#include "xstd.h"  #define ANSIC_RST  "\x1B[0m"  #define ANSIC_BBLU  "\x1B[34;1m" @@ -61,20 +62,6 @@ static int count_dir_entries(const char *path)  	return counter;  } -static char *xstrcat(const char *first, const char *second, -	const char *delimiter) -{ -	size_t size = sizeof(char) * (strlen(first) + strlen(second) + 1); -	if(delimiter) -		size += sizeof(char) * strlen(delimiter); -	char *res = malloc(size); -	strcpy(res, first); -	if(delimiter) -		strcat(res, delimiter); -	strcat(res, second); -	return res; -} -  int tree(const char *path, const char *prefix)  {  	DIR *main_dir; diff --git a/src/handerror.c b/src/xstd.c index 218619d..5669e8f 100644 --- a/src/handerror.c +++ b/src/xstd.c @@ -1,6 +1,7 @@  #include <stdio.h>  #include <stdlib.h>  #include <unistd.h> +#include <string.h>  #include <sys/wait.h>  void callError(int num) @@ -28,3 +29,17 @@ void easyFork(char *name, char *arguments[])  	wait(&pid);  } +char *xstrcat(const char *first, const char *second, +	const char *delimiter) +{ +	size_t size = sizeof(char) * (strlen(first) + strlen(second) + 1); +	if(delimiter) +		size += sizeof(char) * strlen(delimiter); +	char *res = malloc(size); +	strcpy(res, first); +	if(delimiter) +		strcat(res, delimiter); +	strcat(res, second); +	return res; +} + diff --git a/src/xstd.h b/src/xstd.h new file mode 100644 index 0000000..5432390 --- /dev/null +++ b/src/xstd.h @@ -0,0 +1,10 @@ +#ifndef LPASS_XSTD_H +#define LPASS_XSTD_H + +void easyFork(char *name, char *arguments[]); +void callError(int num); +void printError(const char *text); +char *xstrcat(const char *first, const char *second, +	const char *delimiter); + +#endif
\ No newline at end of file | 
