Some more stuff.

-Erik
This commit is contained in:
Erik Andersen 2000-03-19 05:28:55 +00:00
parent 6c41c44898
commit c7c634bd88
8 changed files with 976 additions and 919 deletions

911
cmdedit.c

File diff suppressed because it is too large Load Diff

View File

@ -12,6 +12,6 @@
* *
*/ */
extern int cmdedit_read_input(int inputFd, int outputFd, char command[BUFSIZ]); extern int cmdedit_read_input(char* prompt, int inputFd, int outputFd, char command[BUFSIZ]);
extern void cmdedit_init(void); extern void cmdedit_init(void);

View File

@ -216,6 +216,12 @@ extern int check_wildcard_match(const char* text, const char* pattern);
extern long getNum (const char *cp); extern long getNum (const char *cp);
extern pid_t findPidByName( char* pidName); extern pid_t findPidByName( char* pidName);
extern void *xmalloc (size_t size); extern void *xmalloc (size_t size);
#ifdef BB_FEATURE_SH_COMMAND_EDITING
#include <stdio.h>
extern int cmdedit_read_input(char* prompt, int inputFd, int outputFd, char command[BUFSIZ]);
extern void cmdedit_init(void);
#endif
#if defined BB_INIT || defined BB_SYSLOGD #if defined BB_INIT || defined BB_SYSLOGD
extern int device_open(char *device, int mode); extern int device_open(char *device, int mode);
#endif #endif

21
lash.c
View File

@ -39,10 +39,6 @@
#include <unistd.h> #include <unistd.h>
#ifdef BB_FEATURE_SH_COMMAND_EDITING
#include "cmdedit.h"
#endif
#define JOB_STATUS_FORMAT "[%d] %-22s %.40s\n" #define JOB_STATUS_FORMAT "[%d] %-22s %.40s\n"
@ -123,8 +119,7 @@ static struct builtInCommand bltins[] = {
{"export", "Set environment variable", "export [VAR=value]", shell_export}, {"export", "Set environment variable", "export [VAR=value]", shell_export},
{"unset", "Unset environment variable", "unset VAR", shell_unset}, {"unset", "Unset environment variable", "unset VAR", shell_unset},
{".", "Source-in and run commands in a file", ". filename", {".", "Source-in and run commands in a file", ". filename", shell_source},
shell_source},
{"help", "List shell built-in commands", "help", shell_help}, {"help", "List shell built-in commands", "help", shell_help},
{NULL, NULL, NULL, NULL} {NULL, NULL, NULL, NULL}
}; };
@ -396,11 +391,19 @@ static void checkJobs(struct jobSet *jobList)
static int getCommand(FILE * source, char *command) static int getCommand(FILE * source, char *command)
{ {
if (source == stdin) { if (source == stdin) {
fprintf(stdout, "BBSHELL %s %s", cwd, prompt);
fflush(stdout);
#ifdef BB_FEATURE_SH_COMMAND_EDITING #ifdef BB_FEATURE_SH_COMMAND_EDITING
cmdedit_read_input(fileno(stdin), fileno(stdout), command); int len;
char *promptStr;
len=fprintf(stdout, "BBSHELL %s %s", cwd, prompt);
fflush(stdout);
promptStr=(char*)malloc(sizeof(char)*(len+1));
sprintf(promptStr, "BBSHELL %s %s", cwd, prompt);
cmdedit_read_input(promptStr, fileno(stdin), fileno(stdout), command);
free( promptStr);
return 0; return 0;
#else
fprintf(stdout, "%s %s", cwd, prompt);
fflush(stdout);
#endif #endif
} }

21
sh.c
View File

@ -39,10 +39,6 @@
#include <unistd.h> #include <unistd.h>
#ifdef BB_FEATURE_SH_COMMAND_EDITING
#include "cmdedit.h"
#endif
#define JOB_STATUS_FORMAT "[%d] %-22s %.40s\n" #define JOB_STATUS_FORMAT "[%d] %-22s %.40s\n"
@ -123,8 +119,7 @@ static struct builtInCommand bltins[] = {
{"export", "Set environment variable", "export [VAR=value]", shell_export}, {"export", "Set environment variable", "export [VAR=value]", shell_export},
{"unset", "Unset environment variable", "unset VAR", shell_unset}, {"unset", "Unset environment variable", "unset VAR", shell_unset},
{".", "Source-in and run commands in a file", ". filename", {".", "Source-in and run commands in a file", ". filename", shell_source},
shell_source},
{"help", "List shell built-in commands", "help", shell_help}, {"help", "List shell built-in commands", "help", shell_help},
{NULL, NULL, NULL, NULL} {NULL, NULL, NULL, NULL}
}; };
@ -396,11 +391,19 @@ static void checkJobs(struct jobSet *jobList)
static int getCommand(FILE * source, char *command) static int getCommand(FILE * source, char *command)
{ {
if (source == stdin) { if (source == stdin) {
fprintf(stdout, "BBSHELL %s %s", cwd, prompt);
fflush(stdout);
#ifdef BB_FEATURE_SH_COMMAND_EDITING #ifdef BB_FEATURE_SH_COMMAND_EDITING
cmdedit_read_input(fileno(stdin), fileno(stdout), command); int len;
char *promptStr;
len=fprintf(stdout, "BBSHELL %s %s", cwd, prompt);
fflush(stdout);
promptStr=(char*)malloc(sizeof(char)*(len+1));
sprintf(promptStr, "BBSHELL %s %s", cwd, prompt);
cmdedit_read_input(promptStr, fileno(stdin), fileno(stdout), command);
free( promptStr);
return 0; return 0;
#else
fprintf(stdout, "%s %s", cwd, prompt);
fflush(stdout);
#endif #endif
} }

File diff suppressed because it is too large Load Diff

View File

@ -12,6 +12,6 @@
* *
*/ */
extern int cmdedit_read_input(int inputFd, int outputFd, char command[BUFSIZ]); extern int cmdedit_read_input(char* prompt, int inputFd, int outputFd, char command[BUFSIZ]);
extern void cmdedit_init(void); extern void cmdedit_init(void);

View File

@ -39,10 +39,6 @@
#include <unistd.h> #include <unistd.h>
#ifdef BB_FEATURE_SH_COMMAND_EDITING
#include "cmdedit.h"
#endif
#define JOB_STATUS_FORMAT "[%d] %-22s %.40s\n" #define JOB_STATUS_FORMAT "[%d] %-22s %.40s\n"
@ -123,8 +119,7 @@ static struct builtInCommand bltins[] = {
{"export", "Set environment variable", "export [VAR=value]", shell_export}, {"export", "Set environment variable", "export [VAR=value]", shell_export},
{"unset", "Unset environment variable", "unset VAR", shell_unset}, {"unset", "Unset environment variable", "unset VAR", shell_unset},
{".", "Source-in and run commands in a file", ". filename", {".", "Source-in and run commands in a file", ". filename", shell_source},
shell_source},
{"help", "List shell built-in commands", "help", shell_help}, {"help", "List shell built-in commands", "help", shell_help},
{NULL, NULL, NULL, NULL} {NULL, NULL, NULL, NULL}
}; };
@ -396,11 +391,19 @@ static void checkJobs(struct jobSet *jobList)
static int getCommand(FILE * source, char *command) static int getCommand(FILE * source, char *command)
{ {
if (source == stdin) { if (source == stdin) {
fprintf(stdout, "BBSHELL %s %s", cwd, prompt);
fflush(stdout);
#ifdef BB_FEATURE_SH_COMMAND_EDITING #ifdef BB_FEATURE_SH_COMMAND_EDITING
cmdedit_read_input(fileno(stdin), fileno(stdout), command); int len;
char *promptStr;
len=fprintf(stdout, "BBSHELL %s %s", cwd, prompt);
fflush(stdout);
promptStr=(char*)malloc(sizeof(char)*(len+1));
sprintf(promptStr, "BBSHELL %s %s", cwd, prompt);
cmdedit_read_input(promptStr, fileno(stdin), fileno(stdout), command);
free( promptStr);
return 0; return 0;
#else
fprintf(stdout, "%s %s", cwd, prompt);
fflush(stdout);
#endif #endif
} }