7 static char *bufs
[256];
8 static int lnmode
[256];
10 static char *reg_getraw(int c
, int *ln
)
17 char *reg_get(int c
, int *lnmode
)
23 char *s
= lbuf_get(xb
, xrow
);
24 snprintf(ln
, sizeof(ln
), "%s", s
? s
: "");
25 if (strchr(ln
, '\n') != NULL
)
26 *strchr(ln
, '\n') = '\0';
31 return reg_getraw(c
, lnmode
);
34 static void reg_putraw(int c
, char *s
, int ln
)
36 char *pre
= isupper(c
) && bufs
[tolower(c
)] ? bufs
[tolower(c
)] : "";
37 char *buf
= malloc(strlen(pre
) + strlen(s
) + 1);
40 free(bufs
[tolower(c
)]);
41 bufs
[tolower(c
)] = buf
;
42 lnmode
[tolower(c
)] = ln
;
45 void reg_put(int c
, char *s
, int ln
)
49 if ((ln
|| strchr(s
, '\n')) && (!c
|| isalpha(c
))) {
50 for (i
= 8; i
> 0; i
--)
51 if ((i_s
= reg_get('0' + i
, &i_ln
)))
52 reg_putraw('0' + i
+ 1, i_s
, i_ln
);
53 reg_putraw('1', s
, ln
);
61 for (i
= 0; i
< LEN(bufs
); i
++)