diff options
Diffstat (limited to 'clients/xzwrite/yank.c')
-rw-r--r-- | clients/xzwrite/yank.c | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/clients/xzwrite/yank.c b/clients/xzwrite/yank.c deleted file mode 100644 index bb580f1..0000000 --- a/clients/xzwrite/yank.c +++ /dev/null @@ -1,58 +0,0 @@ -#include "xzwrite.h" - -static Yank yank_buffer; -extern Defaults defs; - -static int read_index, write_index, highest; - -void yank_init() -{ - yank_buffer = (Yank) Malloc(defs.max_yanks*sizeof(YankRec), - "while allocating yank buffer", NULL); - (void) memset((char *) yank_buffer, 0, defs.max_yanks*sizeof(YankRec)); - - read_index = write_index = 0; - highest = -1; -} - -Yank yank_prev() -{ - if (highest == -1) - return NULL; - - if (--read_index < 0) read_index = highest; - return &yank_buffer[read_index]; -} - -Yank yank_next() -{ - if (highest == -1) - return NULL; - - if (++read_index > highest) read_index = 0; - return &yank_buffer[read_index]; -} - -void yank_store(dest, msg) - Dest dest; - char *msg; -{ - yank_buffer[write_index].dest = *dest; - if (yank_buffer[write_index].msg) - free(yank_buffer[write_index].msg); - yank_buffer[write_index].msg = (char *) Malloc(strlen(msg) + 1, - "while yanking message", - NULL); - strcpy(yank_buffer[write_index].msg, msg); - - /* - * read_index = write_index + 1 so that if I follow the store by - * a yank_prev I will get the message just stored (since - * read_index is decremented before being used). If I do a - * yank_next, then read_index will be > highest and reset to zero. - */ - read_index = write_index + 1; - if (write_index > highest) - highest = write_index; - write_index = (write_index + 1) % defs.max_yanks; -} |