From 7bc499f7405f2f6134917041534ce76779b2448f Mon Sep 17 00:00:00 2001 From: synt-xerror <169557594+synt-xerror@users.noreply.github.com> Date: Fri, 20 Feb 2026 16:39:50 -0300 Subject: [PATCH] removing external library --- Makefile | 6 ++--- task.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++- toybox.c | 70 -------------------------------------------------------- toybox.h | 8 ------- 4 files changed, 68 insertions(+), 83 deletions(-) delete mode 100644 toybox.c delete mode 100644 toybox.h diff --git a/Makefile b/Makefile index 8fbf4b6..f9cf010 100644 --- a/Makefile +++ b/Makefile @@ -3,12 +3,10 @@ LDFLAGS := $(shell pkg-config --libs glib-2.0) HOME := $(HOME) task: - gcc -c toybox.c -o toybox.o - ar rcs libtoybox.a toybox.o - gcc task.c -L. -ltoybox $(CFLAGS) -o task $(LDFLAGS) + gcc task.c $(CFLAGS) -o task $(LDFLAGS) clean: - rm -f task libtoybox.a toybox.o + rm -f task install: mv task /usr/local/bin diff --git a/task.c b/task.c index b876f2d..323577d 100644 --- a/task.c +++ b/task.c @@ -1,7 +1,11 @@ #include #include #include -#include "toybox.h" +#include +#include +#include +#include +#include // IDEAS // - Organização das tarefas por lista @@ -18,6 +22,67 @@ char* CONFIG_DIR = ".config/task-cli"; // files char* TASK_FILE = "task.txt"; +char* home() +{ + struct passwd *u; + u = getpwuid(getuid()); + + if (!u) { + perror("invalid return of getpwuid() function.\n"); + return NULL; + } + + return u->pw_dir; +} + +// DIR_NAME deve ser o nome do diretório, não o caminho (ex: task) +// Se HOME = NULL, a função assume que a pasta que quer está fora da pasta /home/usuário + +// Importante: essa função retorna um char*. Para abrir o diretório retornado, você deve usar +// a função opendir() com o valor retornado de get_dir() +char* get_dir(const char* HOME, const char* DIR_NAME) { + if (DIR_NAME[0] == '~') { + perror("get_dir doesn't expand '~'"); + return NULL; + } + if (DIR_NAME[0] == '/') { + perror("DIR_NAME can't begin with '/'"); + return NULL; + } + + const char *prefix = HOME ? HOME : ""; + + int size = strlen(prefix) + 1 + strlen(DIR_NAME) + 1; + char *DIR_FINAL = malloc(size); + if (!DIR_FINAL) { + perror("malloc failed"); + return NULL; + } + + sprintf(DIR_FINAL, "%s/%s", prefix, DIR_NAME); + + DIR *dir = opendir(DIR_FINAL); + if (!dir) { + if (mkdir(DIR_FINAL, 0755) != 0) { + fprintf(stderr, "'%s' cannot be created\n", DIR_FINAL); + free(DIR_FINAL); + return NULL; + } + } else { + closedir(dir); + } + + return DIR_FINAL; +} + +char* get_file(char* ROOT, char* FILE_NAME) { + char* FINAL_FILE; + + FINAL_FILE = malloc(strlen(ROOT) + strlen(FILE_NAME) + 1); + sprintf(FINAL_FILE, "%s/%s", ROOT, FILE_NAME); + + return FINAL_FILE; +} int main(int argc, char* argv[]) { diff --git a/toybox.c b/toybox.c deleted file mode 100644 index 6f06f8f..0000000 --- a/toybox.c +++ /dev/null @@ -1,70 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include - -char* home() -{ - struct passwd *u; - u = getpwuid(getuid()); - - if (!u) { - perror("invalid return of getpwuid() function.\n"); - return NULL; - } - - return u->pw_dir; -} - -// DIR_NAME deve ser o nome do diretório, não o caminho (ex: task) -// Se HOME = NULL, a função assume que a pasta que quer está fora da pasta /home/usuário - -// Importante: essa função retorna um char*. Para abrir o diretório retornado, você deve usar -// a função opendir() com o valor retornado de get_dir() -char* get_dir(const char* HOME, const char* DIR_NAME) { - if (DIR_NAME[0] == '~') { - perror("get_dir doesn't expand '~'"); - return NULL; - } - if (DIR_NAME[0] == '/') { - perror("DIR_NAME can't begin with '/'"); - return NULL; - } - - const char *prefix = HOME ? HOME : ""; - - int size = strlen(prefix) + 1 + strlen(DIR_NAME) + 1; - char *DIR_FINAL = malloc(size); - if (!DIR_FINAL) { - perror("malloc failed"); - return NULL; - } - - sprintf(DIR_FINAL, "%s/%s", prefix, DIR_NAME); - - DIR *dir = opendir(DIR_FINAL); - if (!dir) { - if (mkdir(DIR_FINAL, 0755) != 0) { - fprintf(stderr, "'%s' cannot be created\n", DIR_FINAL); - free(DIR_FINAL); - return NULL; - } - } else { - closedir(dir); - } - - return DIR_FINAL; -} - -char* get_file(char* ROOT, char* FILE_NAME) { - char* FINAL_FILE; - - FINAL_FILE = malloc(strlen(ROOT) + strlen(FILE_NAME) + 1); - sprintf(FINAL_FILE, "%s/%s", ROOT, FILE_NAME); - - return FINAL_FILE; -} diff --git a/toybox.h b/toybox.h deleted file mode 100644 index 1cd5f6b..0000000 --- a/toybox.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef TOYBOX_H -#define TOYBOX_H - -char* home(); -char* get_dir(const char* HOME, const char* DIR_NAME); -char* get_file(char* ROOT, char* FILE_NAME); - -#endif