diff --git a/include/libmu/get_string.h b/include/libmu/get_string.h deleted file mode 100644 index 2568ef2..0000000 --- a/include/libmu/get_string.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _GET_STRING_H -#define _GET_STRING_H - -#include -#include -#include - -int mu_get_string(const char *prog_name, char *buf, const size_t len) { - off_t rbytes = read(STDIN_FILENO, buf, len); - - if (rbytes <= 0) { - if (prog_name != NULL) - fprintf(stderr, "%s: %s\n", prog_name, strerror(errno)); - - return 0; - } - - if (rbytes > 0) - buf[rbytes - 1] = '\0'; - - buf[rbytes] = '\0'; - return rbytes; -} - -#endif diff --git a/include/libmu/human.h b/include/libmu/human.h index c74f5b9..7b4192e 100644 --- a/include/libmu/human.h +++ b/include/libmu/human.h @@ -22,7 +22,7 @@ char *mu_humansize(off_t n, off_t block) { snprintf(buf, sizeof(buf), "%.1f%c", size, postfixes[i]); else - snprintf(buf, sizeof(buf), "%ju", (uintmax_t)n); + snprintf(buf, sizeof(buf), "%ju", n); return buf; } diff --git a/src/coreutils/cp/cp.c b/src/coreutils/cp/cp.c index 2f7c3c9..bcb9a61 100644 --- a/src/coreutils/cp/cp.c +++ b/src/coreutils/cp/cp.c @@ -53,7 +53,7 @@ int copy(int mode, const char *src, const char *dst) { return 1; /* test ./testdir/ -> test ./testdir/test */ - char *dup = NULL; + char *str_dup = NULL; char *new_path = (char *)dst; int flag = 0; int ret = 0; @@ -62,14 +62,14 @@ int copy(int mode, const char *src, const char *dst) { if (ofd < 0) { ret = 1; - dup = strdup(src); - if (dup == NULL) + str_dup = strdup(src); + if (str_dup == NULL) goto CLOSE; flag = 1; new_path = NULL; - new_path = mu_make_path(f_flag, dst, basename(dup)); + new_path = mu_make_path(f_flag, dst, basename(str_dup)); if (new_path == NULL) goto CLOSE; @@ -93,8 +93,8 @@ int copy(int mode, const char *src, const char *dst) { CLOSE: close(ifd); if (flag) { - if (dup != NULL) - free(dup); + if (str_dup != NULL) + free(str_dup); if (new_path != NULL) free(new_path); diff --git a/src/coreutils/dd/dd.c b/src/coreutils/dd/dd.c index a0dcf23..ac99d85 100644 --- a/src/coreutils/dd/dd.c +++ b/src/coreutils/dd/dd.c @@ -12,8 +12,8 @@ off_t outfull, outpart; off_t tbytes; void summary(void) { - fprintf(stderr, "%zu+%zu records in\n", infull, inpart); - fprintf(stderr, "%zu+%zu records out\n", outfull, outpart); + fprintf(stderr, "%jd+%jd records in\n", infull, inpart); + fprintf(stderr, "%jd+%jd records out\n", outfull, outpart); fprintf(stderr, "%s total bytes copied\n", mu_humansize(tbytes, 1024)); } diff --git a/src/coreutils/df/df.c b/src/coreutils/df/df.c index ea7f61b..b5d988d 100644 --- a/src/coreutils/df/df.c +++ b/src/coreutils/df/df.c @@ -69,7 +69,7 @@ int main(int argc, char **argv) { off_t capacity = (used * 100 + 1) / (avail + used + 1); if (!h_flag) - printf("%-20s %12ju %12ju %12ju %12ju%% %s\n", me->mnt_fsname, total, used, avail, capacity, me->mnt_dir); + printf("%-20s %12jd %12jd %12jd %12jd%% %s\n", me->mnt_fsname, total, used, avail, capacity, me->mnt_dir); else { char total_s[MU_HUMAN_BUF_SIZE + 1]; @@ -80,7 +80,7 @@ int main(int argc, char **argv) { snprintf(used_s, sizeof(used_s), "%s", mu_humansize(used * block, block)); snprintf(avail_s, sizeof(avail_s), "%s", mu_humansize(avail * block, block)); - printf("%-20s %10s %9s %9s %3ju%% %s\n", me->mnt_fsname, total_s, used_s, avail_s, capacity, me->mnt_dir); + printf("%-20s %10s %9s %9s %3jd%% %s\n", me->mnt_fsname, total_s, used_s, avail_s, capacity, me->mnt_dir); } } diff --git a/src/coreutils/head/head.c b/src/coreutils/head/head.c index 9c7d90a..5928409 100644 --- a/src/coreutils/head/head.c +++ b/src/coreutils/head/head.c @@ -33,9 +33,10 @@ void print(const char *file, FILE *fp, long lines, long bytes) { if (c == '\n') lcount++; - putchar(c); if (c == EOF || lcount == lines || (c_flag && bcount == bytes)) break; + + putchar(c); } } diff --git a/src/coreutils/id/id.c b/src/coreutils/id/id.c index 77a9e70..c6e3d5d 100644 --- a/src/coreutils/id/id.c +++ b/src/coreutils/id/id.c @@ -32,7 +32,7 @@ int print_groups(const struct passwd *pwd, const char *fmt, const int flag) { for (int i = 0; i < ngroups; i++) { struct group *grp = getgrgid(groups[i]); if (grp && !n_flag) - printf("%d", groups[i]); + printf("%u", groups[i]); if ((!r_flag && n_flag) || flag) printf(fmt, grp->gr_name); @@ -53,7 +53,7 @@ int ids(uid_t uid, struct passwd *pwd) { printf("%s", pwd->pw_name); else - printf("%d", uid); + printf("%u", uid); } else if (G_flag || g_flag) diff --git a/src/coreutils/ls/ls.c b/src/coreutils/ls/ls.c index 033f68b..0ae1d24 100644 --- a/src/coreutils/ls/ls.c +++ b/src/coreutils/ls/ls.c @@ -80,6 +80,8 @@ struct d_node **list(const char *path, size_t *nfiles, int *ret) { DIR *dp = opendir(path); if (dp == NULL) { + free(dir); + fprintf(stderr, "ls: %s: %s\n", path, strerror(errno)); return NULL; } @@ -145,11 +147,11 @@ void dfree(struct d_node **dir, size_t files) { } char *get_date(time_t mtime) { - static char time[100]; + static char date[100]; - strftime(time, sizeof(time), "%b %d %H:%M", localtime(&mtime)); + strftime(date, sizeof(date), "%b %d %H:%M", localtime(&mtime)); - return time; + return date; } /* Print */ @@ -196,7 +198,7 @@ int print(const struct d_node *node) { int ret = 0; if (i_flag) - ret += printf("%7ju ", (uintmax_t)node->stats.st_ino); + ret += printf("%7jd ", node->stats.st_ino); if (s_flag) { off_t size = 512 * node->stats.st_blocks; @@ -204,7 +206,7 @@ int print(const struct d_node *node) { ret += printf("%7s ", mu_humansize(size, 1024)); else - ret += printf("%7ju ", (uintmax_t)size / 1024); + ret += printf("%7jd ", size / 1024); } if (l_flag) { @@ -216,10 +218,10 @@ int print(const struct d_node *node) { char *gr_name = (gr != 0) ? gr->gr_name : "nobody"; char *pw_name = (pw != 0) ? pw->pw_name : "nobody"; if (h_flag) - ret += printf(" %4ju %4s %6s %6s %s ", (uintmax_t)node->stats.st_nlink, pw_name, gr_name, mu_humansize(node->stats.st_size, 1024), get_date(node->stats.st_mtime)); + ret += printf(" %4u %4s %6s %6s %s ", node->stats.st_nlink, pw_name, gr_name, mu_humansize(node->stats.st_size, 1024), get_date(node->stats.st_mtime)); else - ret += printf(" %4ju %4s %6s %10jd %s ", (uintmax_t)node->stats.st_nlink, pw_name, gr_name, (uintmax_t)node->stats.st_size, get_date(node->stats.st_mtime)); + ret += printf(" %4u %4s %6s %10ld %s ", node->stats.st_nlink, pw_name, gr_name, node->stats.st_size, get_date(node->stats.st_mtime)); } if (c_flag && p_flag) diff --git a/src/coreutils/mkdir/mkdir.c b/src/coreutils/mkdir/mkdir.c index 2d34675..d3b1c1e 100644 --- a/src/coreutils/mkdir/mkdir.c +++ b/src/coreutils/mkdir/mkdir.c @@ -21,7 +21,7 @@ int do_mkdir(const char *path) { } else if (v_flag) - printf("mkdir: %s created with mode %d\n", path, mode); + printf("mkdir: %s created with mode %u\n", path, mode); return 0; } diff --git a/src/coreutils/nl/nl.c b/src/coreutils/nl/nl.c index 5f9cd6a..0115edd 100644 --- a/src/coreutils/nl/nl.c +++ b/src/coreutils/nl/nl.c @@ -24,7 +24,7 @@ int nl(const char *path) { size_t size = 0; while (getline(&buf, &size, fp) != EOF) { if (strlen(buf) > 1) - fprintf(stdout, "%*u\t%s", w_flag, lines++, buf); + fprintf(stdout, "%*d\t%s", w_flag, lines++, buf); else fprintf(stdout, "%*s\t%s", w_flag, " ", buf); diff --git a/src/coreutils/rm/rm.c b/src/coreutils/rm/rm.c index 7ebd56a..616b269 100644 --- a/src/coreutils/rm/rm.c +++ b/src/coreutils/rm/rm.c @@ -17,9 +17,7 @@ char v_flag; int verbose(const char *path) { if (v_flag) { fprintf(stderr, "rm: remove %s? [y/n] ", path); - fflush(stderr); - fflush(stdin); int c = 0; int key = 0; diff --git a/src/coreutils/setsid/setsid.c b/src/coreutils/setsid/setsid.c index 87580c8..09d5bb1 100644 --- a/src/coreutils/setsid/setsid.c +++ b/src/coreutils/setsid/setsid.c @@ -13,8 +13,7 @@ int main(int argc, char **argv) { return 1; } - pid_t pid; - if ((pid = fork()) != 0) + if (fork() != 0) return 0; setsid(); diff --git a/src/coreutils/split/split.c b/src/coreutils/split/split.c index e2d3270..8b2243d 100644 --- a/src/coreutils/split/split.c +++ b/src/coreutils/split/split.c @@ -52,15 +52,17 @@ int main(int argc, char **argv) { case 'b': switch (optarg[strlen(optarg) - 1]) { case 'm': - size = atoi(optarg) * 1048576; + sscanf(optarg, "%ld", &size); + size *= 1048576; break; case 'k': - size = atoi(optarg) * 1024; + sscanf(optarg, "%ld", &size); + size *= 1024; break; default: - size = atoi(optarg); + sscanf(optarg, "%ld", &size); break; } diff --git a/src/init/init/init.c b/src/init/init/init.c index 0274f8e..ac4ff31 100644 --- a/src/init/init/init.c +++ b/src/init/init/init.c @@ -23,8 +23,7 @@ void poweroff(int sig) { } void execute(char *argv[]) { - pid_t pid; - if ((pid = fork()) == 0) { + if (fork() == 0) { setsid(); execvp(argv[0], argv); diff --git a/src/loginutils/login/login.c b/src/loginutils/login/login.c index 44123de..fc27859 100644 --- a/src/loginutils/login/login.c +++ b/src/loginutils/login/login.c @@ -7,7 +7,6 @@ #include #include #include -#include "get_string.h" #include "pw_check.h" #define ECHOFLAGS (ECHO | ECHOE | ECHOK | ECHONL) @@ -53,9 +52,13 @@ struct passwd *proccess_input(char *hostname) { /* Username */ printf("Login on %s: ", hostname); fflush(stdout); - if (!mu_get_string("login", user, sizeof(user))) + + off_t ret = 0; + if ((ret = read(STDIN_FILENO, user, sizeof(user))) <= 0) return NULL; + user[ret - 1] = '\0'; + struct passwd *pw = getpwnam(user); if (!pw) { fprintf(stderr, "login: Incorrent username\n"); @@ -68,9 +71,10 @@ struct passwd *proccess_input(char *hostname) { if (hide_input(STDIN_FILENO, 1)) return NULL; - if (!mu_get_string("login", psswd, sizeof(psswd))) + if ((ret = read(STDIN_FILENO, psswd, sizeof(psswd))) <= 0) return NULL; + psswd[ret - 1] = '\0'; printf("\n"); if (pw_check("login", pw, psswd)) { memset(psswd, '\0', sizeof(psswd)); diff --git a/src/procps/uptime/uptime.c b/src/procps/uptime/uptime.c index 80574c0..4ff0b24 100644 --- a/src/procps/uptime/uptime.c +++ b/src/procps/uptime/uptime.c @@ -20,7 +20,7 @@ int main(void) { time(¤t_secs); struct tm *current_time = localtime(¤t_secs); - printf("%02u:%02u:%02u ", current_time->tm_hour, current_time->tm_min, current_time->tm_sec); + printf("%02d:%02d:%02d ", current_time->tm_hour, current_time->tm_min, current_time->tm_sec); /* How long system has beep up */ struct timespec uptime;