Moved functions used by "lsmod" from cat.c to utility.c

Adjusted to make lsmod and sh compilable as standalone apps.
Comment fixes
This commit is contained in:
Pavel Roskin 2000-07-17 20:18:42 +00:00
parent 97562bd9d7
commit cc8a66b113
6 changed files with 37 additions and 40 deletions

16
cat.c
View File

@ -24,20 +24,8 @@
#include "internal.h" #include "internal.h"
#include <stdio.h> #include <stdio.h>
static void print_file(FILE * file)
{
int c;
while ((c = getc(file)) != EOF)
putc(c, stdout);
fclose(file);
fflush(stdout);
}
extern int cat_main(int argc, char **argv) extern int cat_main(int argc, char **argv)
{ {
FILE *file;
if (argc == 1) { if (argc == 1) {
print_file(stdin); print_file(stdin);
exit(TRUE); exit(TRUE);
@ -47,12 +35,10 @@ extern int cat_main(int argc, char **argv)
usage(cat_usage); usage(cat_usage);
while (--argc > 0) { while (--argc > 0) {
file = fopen(*++argv, "r"); if (print_file_by_name(*++argv) == FALSE) {
if (file == NULL) {
perror(*argv); perror(*argv);
exit(FALSE); exit(FALSE);
} }
print_file(file);
} }
return(TRUE); return(TRUE);
} }

View File

@ -24,20 +24,8 @@
#include "internal.h" #include "internal.h"
#include <stdio.h> #include <stdio.h>
static void print_file(FILE * file)
{
int c;
while ((c = getc(file)) != EOF)
putc(c, stdout);
fclose(file);
fflush(stdout);
}
extern int cat_main(int argc, char **argv) extern int cat_main(int argc, char **argv)
{ {
FILE *file;
if (argc == 1) { if (argc == 1) {
print_file(stdin); print_file(stdin);
exit(TRUE); exit(TRUE);
@ -47,12 +35,10 @@ extern int cat_main(int argc, char **argv)
usage(cat_usage); usage(cat_usage);
while (--argc > 0) { while (--argc > 0) {
file = fopen(*++argv, "r"); if (print_file_by_name(*++argv) == FALSE) {
if (file == NULL) {
perror(*argv); perror(*argv);
exit(FALSE); exit(FALSE);
} }
print_file(file);
} }
return(TRUE); return(TRUE);
} }

View File

@ -354,6 +354,8 @@ extern long getNum (const char *cp);
extern pid_t* findPidByName( char* pidName); extern pid_t* findPidByName( char* pidName);
extern int find_real_root_device_name(char* name); extern int find_real_root_device_name(char* name);
extern char *get_line_from_file(FILE *file); extern char *get_line_from_file(FILE *file);
extern void print_file(FILE *file);
extern int print_file_by_name(char *filename);
extern char process_escape_sequence(char **ptr); extern char process_escape_sequence(char **ptr);
extern char *get_last_path_component(char *path); extern char *get_last_path_component(char *path);
extern void xregcomp(regex_t *preg, const char *regex, int cflags); extern void xregcomp(regex_t *preg, const char *regex, int cflags);

View File

@ -28,13 +28,13 @@
extern int lsmod_main(int argc, char **argv) extern int lsmod_main(int argc, char **argv)
{ {
#if defined BB_FEATURE_USE_DEVPS_PATCH #if defined BB_FEATURE_USE_DEVPS_PATCH
char *cmd[] = { "cat", "/dev/modules", "\0" }; char *filename = "/dev/modules";
#else #else
#if ! defined BB_FEATURE_USE_PROCFS #if ! defined BB_FEATURE_USE_PROCFS
#error Sorry, I depend on the /proc filesystem right now. #error Sorry, I depend on the /proc filesystem right now.
#endif #endif
char *cmd[] = { "cat", "/proc/modules", "\0" }; char *filename = "/proc/modules";
#endif #endif
return(cat_main(3, cmd)); return(print_file_by_name(filename));
} }

View File

@ -28,13 +28,13 @@
extern int lsmod_main(int argc, char **argv) extern int lsmod_main(int argc, char **argv)
{ {
#if defined BB_FEATURE_USE_DEVPS_PATCH #if defined BB_FEATURE_USE_DEVPS_PATCH
char *cmd[] = { "cat", "/dev/modules", "\0" }; char *filename = "/dev/modules";
#else #else
#if ! defined BB_FEATURE_USE_PROCFS #if ! defined BB_FEATURE_USE_PROCFS
#error Sorry, I depend on the /proc filesystem right now. #error Sorry, I depend on the /proc filesystem right now.
#endif #endif
char *cmd[] = { "cat", "/proc/modules", "\0" }; char *filename = "/proc/modules";
#endif #endif
return(cat_main(3, cmd)); return(print_file_by_name(filename));
} }

View File

@ -483,7 +483,7 @@ const char *timeString(time_t timeVal)
return buf; return buf;
} }
#endif /* BB_TAR */ #endif /* BB_TAR || BB_AR */
#if defined BB_TAR || defined BB_CP_MV || defined BB_AR #if defined BB_TAR || defined BB_CP_MV || defined BB_AR
/* /*
@ -511,10 +511,10 @@ int fullWrite(int fd, const char *buf, int len)
return total; return total;
} }
#endif /* BB_TAR || BB_CP_MV */ #endif /* BB_TAR || BB_CP_MV || BB_AR */
#if defined BB_TAR || defined BB_TAIL || defined BB_AR #if defined BB_TAR || defined BB_TAIL || defined BB_AR || defined BB_SH
/* /*
* Read all of the supplied buffer from a file. * Read all of the supplied buffer from a file.
* This does multiple reads as necessary. * This does multiple reads as necessary.
@ -544,7 +544,7 @@ int fullRead(int fd, char *buf, int len)
return total; return total;
} }
#endif /* BB_TAR || BB_TAIL */ #endif /* BB_TAR || BB_TAIL || BB_AR || BB_SH */
#if defined (BB_CHMOD_CHOWN_CHGRP) \ #if defined (BB_CHMOD_CHOWN_CHGRP) \
@ -1667,6 +1667,29 @@ extern char *get_line_from_file(FILE *file)
return linebuf; return linebuf;
} }
#if defined BB_CAT || defined BB_LSMOD
extern void print_file(FILE *file)
{
int c;
while ((c = getc(file)) != EOF)
putc(c, stdout);
fclose(file);
fflush(stdout);
}
extern int print_file_by_name(char *filename)
{
FILE *file;
file = fopen(filename, "r");
if (file == NULL) {
return FALSE;
}
print_file(file);
return TRUE;
}
#endif /* BB_CAT || BB_LSMOD */
#if defined BB_ECHO || defined BB_TR #if defined BB_ECHO || defined BB_TR
char process_escape_sequence(char **ptr) char process_escape_sequence(char **ptr)
{ {