From 881d54517a9ce3a460cbfbf53c3efc323abd04d4 Mon Sep 17 00:00:00 2001 From: Ali Gholami Rudi Date: Wed, 10 Jun 2015 14:39:24 +0430 Subject: [PATCH] reg: numeric buffers --- reg.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/reg.c b/reg.c index 59b27c1..f4eb05c 100644 --- a/reg.c +++ b/reg.c @@ -12,7 +12,7 @@ char *reg_get(int c, int *ln) return bufs[c]; } -void reg_put(int c, char *s, int ln) +static void reg_putraw(int c, char *s, int ln) { char *pre = isupper(c) ? bufs[tolower(c)] : ""; char *buf = malloc(strlen(pre) + strlen(s) + 1); @@ -23,6 +23,19 @@ void reg_put(int c, char *s, int ln) lnmode[tolower(c)] = ln; } +void reg_put(int c, char *s, int ln) +{ + int i, i_ln; + char *i_s; + if (ln || strchr(s, '\n')) { + for (i = 8; i > 0; i--) + if ((i_s = reg_get('0' + i, &i_ln))) + reg_putraw('0' + i + 1, i_s, i_ln); + reg_putraw('1', s, ln); + } + reg_putraw(c, s, ln); +} + void reg_done(void) { int i; -- 2.11.4.GIT