X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=utility.c;h=62c47288561ee3a108bf6771f81dafdff0ac2d04;hb=46f44d24fcc25a5d6e13e0453485881bdf147e91;hp=39ed1b66aad2fb5e14cd8a857c85bb8552d7a6cf;hpb=324a778f31ac99f2c9d947a99dc4c37902bde6fe;p=oweals%2Fbusybox.git diff --git a/utility.c b/utility.c index 39ed1b66a..62c472885 100644 --- a/utility.c +++ b/utility.c @@ -33,7 +33,7 @@ || defined (BB_LS) \ || defined (BB_RM) \ || defined (BB_TAR) -/* same conditions as recursiveAction */ +/* same conditions as recursive_action */ #define bb_need_name_too_long #endif #define bb_need_memory_exhausted @@ -84,36 +84,35 @@ extern void usage(const char *usage) exit(EXIT_FAILURE); } -extern void errorMsg(const char *s, ...) +static void verror_msg(const char *s, va_list p) { - va_list p; - - va_start(p, s); fflush(stdout); fprintf(stderr, "%s: ", applet_name); vfprintf(stderr, s, p); - va_end(p); fflush(stderr); } -extern void fatalError(const char *s, ...) +extern void error_msg(const char *s, ...) { va_list p; va_start(p, s); - fflush(stdout); - fprintf(stderr, "%s: ", applet_name); - vfprintf(stderr, s, p); + verror_msg(s, p); va_end(p); - fflush(stderr); - exit(EXIT_FAILURE); } -extern void fatalPerror(const char *s, ...) +extern void error_msg_and_die(const char *s, ...) { va_list p; va_start(p, s); + verror_msg(s, p); + va_end(p); + exit(EXIT_FAILURE); +} + +static void vperror_msg(const char *s, va_list p) +{ fflush(stdout); fprintf(stderr, "%s: ", applet_name); if (s && *s) { @@ -121,8 +120,25 @@ extern void fatalPerror(const char *s, ...) fputs(": ", stderr); } fprintf(stderr, "%s\n", strerror(errno)); - va_end(p); fflush(stderr); +} + +extern void perror_msg(const char *s, ...) +{ + va_list p; + + va_start(p, s); + vperror_msg(s, p); + va_end(p); +} + +extern void perror_msg_and_die(const char *s, ...) +{ + va_list p; + + va_start(p, s); + vperror_msg(s, p); + va_end(p); exit(EXIT_FAILURE); } @@ -140,7 +156,9 @@ extern int get_kernel_revision(void) perror("cannot get system information"); return (0); } - sscanf(name.version, "%d.%d.%d", &major, &minor, &patch); + major = atoi(strtok(name.release, ".")); + minor = atoi(strtok(NULL, ".")); + patch = atoi(strtok(NULL, ".")); return major * 65536 + minor * 256 + patch; } #endif /* BB_INIT */ @@ -248,7 +266,7 @@ void reset_ino_dev_hashtable(void) * Return TRUE if a fileName is a directory. * Nonexistant files return FALSE. */ -int isDirectory(const char *fileName, const int followLinks, struct stat *statBuf) +int is_directory(const char *fileName, const int followLinks, struct stat *statBuf) { int status; int didMalloc = 0; @@ -278,21 +296,21 @@ int isDirectory(const char *fileName, const int followLinks, struct stat *statBu #if defined (BB_AR) || defined BB_CP_MV /* - * Copy readSize bytes between two file descriptors + * Copy chunksize bytes between two file descriptors */ -int copySubFile(int srcFd, int dstFd, size_t remaining) +int copy_file_chunk(int srcfd, int dstfd, size_t chunksize) { size_t size; - char buffer[BUFSIZ]; + char buffer[BUFSIZ]; /* BUFSIZ is declared in stdio.h */ - while (remaining > 0) { - if (remaining > BUFSIZ) + while (chunksize > 0) { + if (chunksize > BUFSIZ) size = BUFSIZ; else - size = remaining; - if (fullWrite(dstFd, buffer, fullRead(srcFd, buffer, size)) < size) + size = chunksize; + if (full_write(dstfd, buffer, full_read(srcfd, buffer, size)) < size) return(FALSE); - remaining -= size; + chunksize -= size; } return (TRUE); } @@ -307,7 +325,7 @@ int copySubFile(int srcFd, int dstFd, size_t remaining) * -Erik Andersen */ int -copyFile(const char *srcName, const char *destName, +copy_file(const char *srcName, const char *destName, int setModes, int followLinks, int forceFlag) { int rfd; @@ -340,7 +358,7 @@ copyFile(const char *srcName, const char *destName, if ((srcStatBuf.st_dev == dstStatBuf.st_dev) && (srcStatBuf.st_ino == dstStatBuf.st_ino)) { - errorMsg("Copying file \"%s\" to itself\n", srcName); + error_msg("Copying file \"%s\" to itself\n", srcName); return FALSE; } @@ -405,7 +423,7 @@ copyFile(const char *srcName, const char *destName, return FALSE; } - if (copySubFile(rfd, wfd, srcStatBuf.st_size)==FALSE) + if (copy_file_chunk(rfd, wfd, srcStatBuf.st_size)==FALSE) goto error_exit; close(rfd); @@ -464,16 +482,16 @@ static const mode_t MBIT[] = { S_IROTH, S_IWOTH, S_IXOTH }; -#define MODE1 "rwxrwxrwx" -#define MODE0 "---------" -#define SMODE1 "..s..s..t" -#define SMODE0 "..S..S..T" +static const char MODE1[] = "rwxrwxrwx"; +static const char MODE0[] = "---------"; +static const char SMODE1[] = "..s..s..t"; +static const char SMODE0[] = "..S..S..T"; /* * Return the standard ls-like mode string from a file mode. * This is static and so is overwritten on each call. */ -const char *modeString(int mode) +const char *mode_string(int mode) { static char buf[12]; @@ -496,7 +514,7 @@ const char *modeString(int mode) * Return the standard ls-like time string from a time_t * This is static and so is overwritten on each call. */ -const char *timeString(time_t timeVal) +const char *time_string(time_t timeVal) { time_t now; char *str; @@ -524,7 +542,7 @@ const char *timeString(time_t timeVal) * This does multiple writes as necessary. * Returns the amount written, or -1 on an error. */ -int fullWrite(int fd, const char *buf, int len) +int full_write(int fd, const char *buf, int len) { int cc; int total; @@ -554,7 +572,7 @@ int fullWrite(int fd, const char *buf, int len) * Returns the amount read, or -1 on an error. * A short read is returned on an end of file. */ -int fullRead(int fd, char *buf, int len) +int full_read(int fd, char *buf, int len) { int cc; int total; @@ -593,12 +611,12 @@ int fullRead(int fd, char *buf, int len) * location, and do something (something specified * by the fileAction and dirAction function pointers). * - * Unfortunatly, while nftw(3) could replace this and reduce + * Unfortunately, while nftw(3) could replace this and reduce * code size a bit, nftw() wasn't supported before GNU libc 2.1, * and so isn't sufficiently portable to take over since glibc2.1 * is so stinking huge. */ -int recursiveAction(const char *fileName, +int recursive_action(const char *fileName, int recurse, int followLinks, int depthFirst, int (*fileAction) (const char *fileName, struct stat * statbuf, @@ -623,7 +641,7 @@ int recursiveAction(const char *fileName, "status=%d followLinks=%d TRUE=%d\n", status, followLinks, TRUE); #endif - perror(fileName); + perror_msg("%s", fileName); return FALSE; } @@ -648,13 +666,13 @@ int recursiveAction(const char *fileName, dir = opendir(fileName); if (!dir) { - perror(fileName); + perror_msg("%s", fileName); return FALSE; } if (dirAction != NULL && depthFirst == FALSE) { status = dirAction(fileName, &statbuf, userData); if (status == FALSE) { - perror(fileName); + perror_msg("%s", fileName); return FALSE; } } @@ -666,13 +684,13 @@ int recursiveAction(const char *fileName, continue; } if (strlen(fileName) + strlen(next->d_name) + 1 > BUFSIZ) { - errorMsg(name_too_long); + error_msg(name_too_long); return FALSE; } memset(nextFile, 0, sizeof(nextFile)); sprintf(nextFile, "%s/%s", fileName, next->d_name); status = - recursiveAction(nextFile, TRUE, followLinks, depthFirst, + recursive_action(nextFile, TRUE, followLinks, depthFirst, fileAction, dirAction, userData); if (status == FALSE) { closedir(dir); @@ -681,13 +699,13 @@ int recursiveAction(const char *fileName, } status = closedir(dir); if (status < 0) { - perror(fileName); + perror_msg("%s", fileName); return FALSE; } if (dirAction != NULL && depthFirst == TRUE) { status = dirAction(fileName, &statbuf, userData); if (status == FALSE) { - perror(fileName); + perror_msg("%s", fileName); return FALSE; } } @@ -711,7 +729,7 @@ int recursiveAction(const char *fileName, * while all previous ones get default protections. Errors are not reported * here, as failures to restore files can be reported later. */ -extern int createPath(const char *name, int mode) +extern int create_path(const char *name, int mode) { char *cp; char *cpOld; @@ -1040,7 +1058,7 @@ int get_console_fd(char *tty_name) if (is_a_console(fd)) return fd; - errorMsg("Couldnt get a file descriptor referring to the console\n"); + error_msg("Couldnt get a file descriptor referring to the console\n"); return -1; /* total failure */ } @@ -1161,7 +1179,7 @@ extern int check_wildcard_match(const char *text, const char *pattern) * Given any other file (or directory), find the mount table entry for its * filesystem. */ -extern struct mntent *findMountPoint(const char *name, const char *table) +extern struct mntent *find_mount_point(const char *name, const char *table) { struct stat s; dev_t mountDevice; @@ -1201,16 +1219,16 @@ extern struct mntent *findMountPoint(const char *name, const char *table) * Read a number with a possible multiplier. * Returns -1 if the number format is illegal. */ -extern long getNum(const char *cp) +extern long atoi_w_units(const char *cp) { long value; - if (!isDecimal(*cp)) + if (!is_decimal(*cp)) return -1; value = 0; - while (isDecimal(*cp)) + while (is_decimal(*cp)) value = value * 10 + *cp++ - '0'; switch (*cp++) { @@ -1274,14 +1292,14 @@ extern int device_open(char *device, int mode) #endif #if defined BB_FEATURE_USE_DEVPS_PATCH -/* findPidByName() +/* find_pid_by_name() * * This finds the pid of the specified process, * by using the /dev/ps device driver. * * Returns a list of all matching PIDs */ -extern pid_t* findPidByName( char* pidName) +extern pid_t* find_pid_by_name( char* pidName) { int fd, i, j; char device[] = "/dev/ps"; @@ -1292,11 +1310,11 @@ extern pid_t* findPidByName( char* pidName) /* open device */ fd = open(device, O_RDONLY); if (fd < 0) - fatalError( "open failed for `%s': %s\n", device, strerror (errno)); + error_msg_and_die( "open failed for `%s': %s\n", device, strerror (errno)); /* Find out how many processes there are */ if (ioctl (fd, DEVPS_GET_NUM_PIDS, &num_pids)<0) - fatalError( "\nDEVPS_GET_PID_LIST: %s\n", strerror (errno)); + error_msg_and_die( "\nDEVPS_GET_PID_LIST: %s\n", strerror (errno)); /* Allocate some memory -- grab a few extras just in case * some new processes start up while we wait. The kernel will @@ -1307,7 +1325,7 @@ extern pid_t* findPidByName( char* pidName) /* Now grab the pid list */ if (ioctl (fd, DEVPS_GET_PID_LIST, pid_array)<0) - fatalError( "\nDEVPS_GET_PID_LIST: %s\n", strerror (errno)); + error_msg_and_die( "\nDEVPS_GET_PID_LIST: %s\n", strerror (errno)); /* Now search for a match */ for (i=1, j=0; iname, applet2->name); +} + /* END CODE */ /* Local Variables: