From d5ec429771a092e88015e489103e43badaef2c0d Mon Sep 17 00:00:00 2001 From: FreeArtMan Date: Wed, 24 Dec 2014 15:44:09 +0900 Subject: Todo added into bbs shell --- microbbs.c | 1 + todo.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ todo.h | 14 +++++++++++ todo/todo.txt | 5 ++++ 4 files changed, 98 insertions(+) create mode 100644 todo.c create mode 100644 todo.h create mode 100644 todo/todo.txt diff --git a/microbbs.c b/microbbs.c index 8387cb8..c414b55 100644 --- a/microbbs.c +++ b/microbbs.c @@ -146,6 +146,7 @@ int main( int argc, char **argv ) case 'O': { printf("Todo list\n"); + bbs_todo( &ts, NULL ); } break; #endif diff --git a/todo.c b/todo.c new file mode 100644 index 0000000..a505123 --- /dev/null +++ b/todo.c @@ -0,0 +1,78 @@ +#include "todo.h" + +int bbs_todo( term_screen *ts, const char *fname) +{ + int ret=-1; + + int ret_len; + size_t in_size=0; + char *in_buf=NULL; + int quit_loop=0; + + if ( ts == NULL ) + return ret; + + + if ( fname == NULL ) + fname = CONFIG_TODO_DEFAULT_FILE; + + List *todo_list = llist_new(); + f_file *file = f_file_open( fname, F_FILE_READ ); + if ( file != NULL ) + { + const int l_s = 128; + int r_v; + { + cycle0:; + char *l = malloc( l_s ); + r_v = f_file_readl( file, l_s, l ); + if ( r_v < 0 ) goto exit_cycle0; + l[r_v] = '\0'; + llist_push( todo_list, l ); + goto cycle0; + exit_cycle0:; + } + + } + f_file_close( file ); + + while( (quit_loop == 0) ) + { + + printf("(S)how tood list,(Q)uit:"); + ret_len = getline( &in_buf, &in_size, stdin ); + if ( ret_len > 0 ) + { + char ch = in_buf[0]; + switch( ch ) + { + case 'q': + case 'Q': + quit_loop = 1; + ret = 0; + break; + + case 's': + case 'S': + { + struct ListNode *iter=todo_list->first; + int cnt = 1; + while (iter != NULL) + { + printf( "[%d] -> %s\n", cnt, (char *)iter->val); + cnt += 1; + iter = iter->next; + } + } + break; + + default: + printf("Try more\n"); + } + } + } + + llist_free( todo_list ); + + return ret; +} \ No newline at end of file diff --git a/todo.h b/todo.h new file mode 100644 index 0000000..79bff9c --- /dev/null +++ b/todo.h @@ -0,0 +1,14 @@ +#ifndef __MICROBBS_TODO_H +#define __MICROBBS_TODO_H + +//part of libterm +#include "libterm/term.h" +#include "logs.h" +#include "file_use.h" +#include "list.h" + +#include "kconfig.h" + +int bbs_todo( term_screen *, const char *); + +#endif \ No newline at end of file diff --git a/todo/todo.txt b/todo/todo.txt new file mode 100644 index 0000000..3a9516e --- /dev/null +++ b/todo/todo.txt @@ -0,0 +1,5 @@ +Add telnet server into binary +Add voting system +Add nice screen resolution detection, resizing +Add loging +Add messaging -- cgit v1.2.3