ING_DB
This commit is contained in:
parent
daec666835
commit
bab0218e7d
|
|
@ -0,0 +1,122 @@
|
||||||
|
# include "form.h"
|
||||||
|
|
||||||
|
static int _del_ch(field, length)
|
||||||
|
register char *field;
|
||||||
|
register int length;
|
||||||
|
{
|
||||||
|
register char *p;
|
||||||
|
|
||||||
|
for (p = field; length; --length, p++)
|
||||||
|
*p = *(p + 1);
|
||||||
|
*p = ' ';
|
||||||
|
MM_pts(field);
|
||||||
|
MM_repos();
|
||||||
|
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int _ins_ch(field, length)
|
||||||
|
register char *field;
|
||||||
|
register int length;
|
||||||
|
{
|
||||||
|
register char *p;
|
||||||
|
|
||||||
|
for (p = field + length; length; --length, --p)
|
||||||
|
*p = *(p - 1);
|
||||||
|
*field = ' ';
|
||||||
|
MM_pts(field);
|
||||||
|
MM_repos();
|
||||||
|
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MM_edit(form)
|
||||||
|
register struct MM_form *form;
|
||||||
|
{
|
||||||
|
register int ch;
|
||||||
|
register char *t;
|
||||||
|
register int p;
|
||||||
|
register int l;
|
||||||
|
register int line;
|
||||||
|
register int col;
|
||||||
|
|
||||||
|
t = form->f_field;
|
||||||
|
l = form->f_len - 1;
|
||||||
|
p = 0;
|
||||||
|
for ( ; ; )
|
||||||
|
{
|
||||||
|
switch (ch = MM_getchar())
|
||||||
|
{
|
||||||
|
case C_HELP:
|
||||||
|
case C_MENUE:
|
||||||
|
if (form->f_help)
|
||||||
|
{
|
||||||
|
line = MMline;
|
||||||
|
MMline = 1;
|
||||||
|
col = MMcol;
|
||||||
|
MMcol = 1;
|
||||||
|
MMclr_screen(1, 1);
|
||||||
|
(*form->f_help)(form);
|
||||||
|
MMclr_screen(2, 1);
|
||||||
|
MMframe(form, line, col);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case C_NEXT:
|
||||||
|
case C_PREV:
|
||||||
|
if (form->f_mode & F_SENDED)
|
||||||
|
{
|
||||||
|
MM_input(form);
|
||||||
|
if (form->f_func && !(*form->f_func)(form))
|
||||||
|
continue;
|
||||||
|
form->f_mode &= ~F_SENDED;
|
||||||
|
}
|
||||||
|
/* fall through */
|
||||||
|
|
||||||
|
case C_QUIT:
|
||||||
|
MM_backup(ch);
|
||||||
|
MMline = form->f_line;
|
||||||
|
MMcol = form->f_col;
|
||||||
|
return (1);
|
||||||
|
|
||||||
|
case C_FIELD:
|
||||||
|
ch = -p;
|
||||||
|
rel_pos:
|
||||||
|
t += ch;
|
||||||
|
MM_rel_pos(ch);
|
||||||
|
p += ch;
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case C_LEFT:
|
||||||
|
ch = p? -1: l;
|
||||||
|
goto rel_pos;
|
||||||
|
|
||||||
|
case C_RIGHT:
|
||||||
|
right_pos:
|
||||||
|
ch = (p == l)? -p: 1;
|
||||||
|
goto rel_pos;
|
||||||
|
|
||||||
|
case C_DELETE:
|
||||||
|
form->f_mode |= F_SENDED | F_FILLED;
|
||||||
|
_del_ch(t, l - p);
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case C_INSERT:
|
||||||
|
form->f_mode |= F_SENDED | F_FILLED;
|
||||||
|
_ins_ch(t, l - p);
|
||||||
|
continue;
|
||||||
|
|
||||||
|
default:
|
||||||
|
if (ch >= ' ' && ch < 0177)
|
||||||
|
{
|
||||||
|
form->f_mode |= F_SENDED | F_FILLED;
|
||||||
|
*t = ch;
|
||||||
|
write(1, t, 1);
|
||||||
|
goto right_pos;
|
||||||
|
}
|
||||||
|
MMerror(" UNGUELTIGES ZEICHEN ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
# include "form.h"
|
||||||
|
|
||||||
|
MMframe(frame, line, col)
|
||||||
|
register struct MM_form *frame;
|
||||||
|
int line;
|
||||||
|
int col;
|
||||||
|
{
|
||||||
|
register struct MM_form *form;
|
||||||
|
register int invers;
|
||||||
|
|
||||||
|
MMclr_screen(2, 1);
|
||||||
|
form = frame;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
if (form->f_len)
|
||||||
|
{
|
||||||
|
if (invers = form->f_mode & (F_INPUT | F_MENUE))
|
||||||
|
{
|
||||||
|
MM_pos(form->f_line, form->f_col);
|
||||||
|
MM_pts(MM_cs[(form == frame)? CS_SO: CS_SE]);
|
||||||
|
}
|
||||||
|
MM_pos(form->f_line, form->f_col + 1);
|
||||||
|
MM_pta(form->f_field, form->f_len);
|
||||||
|
if (invers)
|
||||||
|
MM_pts(MM_cs[CS_SE]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while ((form = form->f_next) != frame);
|
||||||
|
MM_abs_pos(line, col);
|
||||||
|
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,62 @@
|
||||||
|
# include "form.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
** SHELL CALL BS SHELL
|
||||||
|
** return (0) = ok
|
||||||
|
** return (1) = error
|
||||||
|
*/
|
||||||
|
MMshell(frame, shell, quit, command)
|
||||||
|
struct MM_form *frame;
|
||||||
|
int shell;
|
||||||
|
int quit;
|
||||||
|
register char *command;
|
||||||
|
{
|
||||||
|
register int i;
|
||||||
|
register int pid;
|
||||||
|
register int line;
|
||||||
|
register int col;
|
||||||
|
int status;
|
||||||
|
|
||||||
|
if (!command || !*command)
|
||||||
|
return (0);
|
||||||
|
|
||||||
|
line = MMline;
|
||||||
|
MMline = 1;
|
||||||
|
col = MMcol;
|
||||||
|
MMcol = 1;
|
||||||
|
MMclr_line(1, 1);
|
||||||
|
MMclr_screen(2, 1);
|
||||||
|
|
||||||
|
if ((pid = fork()) < 0)
|
||||||
|
{
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
if (!pid)
|
||||||
|
{
|
||||||
|
setuid(getuid());
|
||||||
|
setgid(getgid());
|
||||||
|
for (i = 3; i < 20; i++)
|
||||||
|
close(i);
|
||||||
|
if (shell)
|
||||||
|
execlp("sh", "sh", "-c", command, (char *) 0);
|
||||||
|
else
|
||||||
|
execlp(command, command, (char *) 0);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* wait for shell to complete */
|
||||||
|
while ((i = wait(&status)) != -1)
|
||||||
|
if (i == pid)
|
||||||
|
break;
|
||||||
|
|
||||||
|
i = status >> 8;
|
||||||
|
if (!i && quit)
|
||||||
|
{
|
||||||
|
MMclr_line(1, 1);
|
||||||
|
MM_ptis(" ENDE ");
|
||||||
|
MM_getchar();
|
||||||
|
MMclr_line(1, 1);
|
||||||
|
}
|
||||||
|
MMframe(frame, line, col);
|
||||||
|
return (i);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,224 @@
|
||||||
|
STATIC
|
||||||
|
------
|
||||||
|
_del_ch: edit.c _del_ch(field, length)
|
||||||
|
char *field;
|
||||||
|
int length;
|
||||||
|
|
||||||
|
_find: value.c struct MM_form *_find(frame, var, no)
|
||||||
|
struct MM_form *frame;
|
||||||
|
char *var;
|
||||||
|
int no;
|
||||||
|
|
||||||
|
_getcha:r getchar.c _getchar()
|
||||||
|
|
||||||
|
_ins_ch edit.c _ins_ch(field, length)
|
||||||
|
char *field;
|
||||||
|
int length;
|
||||||
|
|
||||||
|
_transl:ate getchar.c _translate(key_string)
|
||||||
|
char **key_string;
|
||||||
|
|
||||||
|
_value value.c _value(form)
|
||||||
|
struct MM_form *form;
|
||||||
|
|
||||||
|
_Error: error.c int _Error;
|
||||||
|
|
||||||
|
_Peek_c:h getchar.c int _Peek_ch[];
|
||||||
|
|
||||||
|
_Peek_p:tr getchar.c int _Peek_ptr;
|
||||||
|
|
||||||
|
_Tree: getchar.c struct MM_tree *_Tree;
|
||||||
|
|
||||||
|
_Tty main.c struct sgttyb _Tty;
|
||||||
|
|
||||||
|
_Tty_fd main.c int _Tty_fd;
|
||||||
|
|
||||||
|
_Tty_flags main.c int _Tty_flags;
|
||||||
|
|
||||||
|
|
||||||
|
INTERN
|
||||||
|
------
|
||||||
|
MM_abs_:pos screen.c MM_abs_pos(line, col)
|
||||||
|
int line;
|
||||||
|
int col;
|
||||||
|
|
||||||
|
MM_back:up getchar.c MM_backup(character)
|
||||||
|
int character;
|
||||||
|
|
||||||
|
MM_cs: string.c char *MM_cs[];
|
||||||
|
|
||||||
|
MM_cs_c:m screen.c int MM_cs_cm;
|
||||||
|
|
||||||
|
MM_edit: edit.c MM_edit(form)
|
||||||
|
struct MM_form *form;
|
||||||
|
|
||||||
|
MM_getc:har getchar.c MM_getchar()
|
||||||
|
|
||||||
|
MM_inco:de getchar.c MM_incode(key_string, key_code)
|
||||||
|
char *key_string;
|
||||||
|
int key_code;
|
||||||
|
|
||||||
|
MM_inpu:t input.c MM_input(form)
|
||||||
|
struct MM_form *form;
|
||||||
|
|
||||||
|
MM_need: input.c struct MM_form *MM_need(frame)
|
||||||
|
struct MM_form *frame;
|
||||||
|
|
||||||
|
MM_outp:ut output.c MM_output(form)
|
||||||
|
struct MM_form *form;
|
||||||
|
|
||||||
|
MM_pos: screen.c MM_pos(line, col)
|
||||||
|
int line;
|
||||||
|
int col;
|
||||||
|
|
||||||
|
MM_pta: string.c MM_pta(string, length)
|
||||||
|
char *string;
|
||||||
|
int length;
|
||||||
|
|
||||||
|
MM_ptis: string.c MM_ptis(string)
|
||||||
|
char *string;
|
||||||
|
|
||||||
|
MM_pts: string.c MM_pts(string)
|
||||||
|
char *string;
|
||||||
|
|
||||||
|
MM_rel_:pos screen.c MM_rel_pos(col)
|
||||||
|
int col;
|
||||||
|
|
||||||
|
MM_repo:s screen.c MM_repos()
|
||||||
|
|
||||||
|
MM_outc:ode getchar.c MM_outcode(key_stroutg, key_code)
|
||||||
|
char *key_string;
|
||||||
|
int key_code;
|
||||||
|
|
||||||
|
MM_var: var.c MM_var(form, var, format, type)
|
||||||
|
struct MM_form *form;
|
||||||
|
char *var;
|
||||||
|
char *format;
|
||||||
|
int type;
|
||||||
|
|
||||||
|
EXTERN
|
||||||
|
------
|
||||||
|
MMalloc: alloc.c struct MM_form *MMalloc(frame, line, col, len, var)
|
||||||
|
struct MM_form **frame;
|
||||||
|
int line;
|
||||||
|
int col;
|
||||||
|
int len;
|
||||||
|
char *var;
|
||||||
|
|
||||||
|
MMclr_e:rror error.c MMclr_error()
|
||||||
|
|
||||||
|
MMclr_l:ine screen.c MMclr_line(line, col)
|
||||||
|
int line;
|
||||||
|
int col;
|
||||||
|
|
||||||
|
MMclr_s:creen screen.c MMclr_screen(line, col)
|
||||||
|
int line;
|
||||||
|
int col;
|
||||||
|
|
||||||
|
MMclr_v:alue value.c MMclr_value(frame)
|
||||||
|
struct MM_form *frame;
|
||||||
|
|
||||||
|
MMcol: screen.c int MMcol;
|
||||||
|
|
||||||
|
MMerror: error.c MMerror(error_text)
|
||||||
|
char *error_text;
|
||||||
|
|
||||||
|
MMexit_:form main.c MMexit_form(clear)
|
||||||
|
int clear;
|
||||||
|
|
||||||
|
MMform: form.c MMform(frame)
|
||||||
|
struct MM_form *frame;
|
||||||
|
|
||||||
|
MMframe: frame.c MMframe(frame, line, col)
|
||||||
|
struct MM_form *frame;
|
||||||
|
int line;
|
||||||
|
int col;
|
||||||
|
|
||||||
|
MMfree: free.c MMfree(frame)
|
||||||
|
struct MM_form **frame;
|
||||||
|
|
||||||
|
MMinit_:form main.c MMinit_form(clear)
|
||||||
|
int clear;
|
||||||
|
|
||||||
|
MMin_fi:eld input.c MMin_field(form, func, help, need)
|
||||||
|
struct MM_form *form;
|
||||||
|
int (*func)();
|
||||||
|
int (*help)();
|
||||||
|
int need;
|
||||||
|
|
||||||
|
MMline: screen.c int MMline;
|
||||||
|
|
||||||
|
MMmen_f:ield menue.c MMmen_field(form, func, help, menue_text)
|
||||||
|
struct MM_form *form;
|
||||||
|
int (*func)();
|
||||||
|
int (*help)();
|
||||||
|
char *menue_text;
|
||||||
|
|
||||||
|
MMnext: next.c MMnext()
|
||||||
|
|
||||||
|
MMout_f:ield output.c MMout_field(form, output_text)
|
||||||
|
struct MM_form *form;
|
||||||
|
char *output_text;
|
||||||
|
|
||||||
|
MMpmove: screen.c char *MMpmove(src, dst, len, ch)
|
||||||
|
char *src;
|
||||||
|
char *dst;
|
||||||
|
int len;
|
||||||
|
int ch;
|
||||||
|
|
||||||
|
MMsmove: screen.c MMsmove(src, dst)
|
||||||
|
char *src;
|
||||||
|
char *dst;
|
||||||
|
|
||||||
|
MMset_f:ield value.c MMset_field(frame, var, no)
|
||||||
|
struct MM_form *frame;
|
||||||
|
char *var;
|
||||||
|
int no;
|
||||||
|
|
||||||
|
MMset_v:alue value.c MMset_value(frame, var, no)
|
||||||
|
struct MM_form *frame;
|
||||||
|
char *var;
|
||||||
|
int no;
|
||||||
|
|
||||||
|
MMshell: shell.c MMshell(form, shell, quit, command)
|
||||||
|
struct MM_form *form;
|
||||||
|
int shell;
|
||||||
|
int quit;
|
||||||
|
char *command;
|
||||||
|
|
||||||
|
MMval_f:ield value.c MMval_field(form, func)
|
||||||
|
struct MM_form *form;
|
||||||
|
int (*func)();
|
||||||
|
|
||||||
|
MMvalue: value.c MMvalue(frame)
|
||||||
|
struct MM_form *frame;
|
||||||
|
|
||||||
|
MMvarc: var_c.c MMvarc(form, var, format)
|
||||||
|
struct MM_form *form;
|
||||||
|
char *var;
|
||||||
|
char *format;
|
||||||
|
|
||||||
|
MMvarf4: var_f4.c MMvarf4(form, var, format)
|
||||||
|
struct MM_form *form;
|
||||||
|
char *var;
|
||||||
|
char *format;
|
||||||
|
|
||||||
|
MMvarf8: var_f8.c MMvarf8(form, var, format)
|
||||||
|
struct MM_form *form;
|
||||||
|
char *var;
|
||||||
|
char *format;
|
||||||
|
|
||||||
|
MMvari1: var_i1.c MMvari1(form, var, format)
|
||||||
|
struct MM_form *form;
|
||||||
|
char *var;
|
||||||
|
char *format;
|
||||||
|
|
||||||
|
MMvari2: var_i2.c MMvari2(form, var, format)
|
||||||
|
struct MM_form *form;
|
||||||
|
char *var;
|
||||||
|
char *format;
|
||||||
|
|
||||||
|
MMvari4: var_i4.c MMvari4(form, var, format)
|
||||||
|
struct MM_form *form;
|
||||||
|
char *var;
|
||||||
|
char *format;
|
||||||
Loading…
Reference in New Issue