#include <stdio.h>
#include <ncurses.h>
#include <signal.h>
+#include <stdlib.h>
#include <unistd.h>
+#define MAX_TODO_LENGTH 200
+
void winch_handler(int sig);
+char* read_todo(FILE* file);
+
WINDOW* create_list_win(int height, int width, int y, int x);
+#include "config.h"
+
int
main(int argc, char** argv)
{
+ int flag;
+ FILE* board_file;
int height, width;
int x, y;
int ch;
signal(SIGWINCH, winch_handler);
+ // read command line args
+ flag = getopt(argc, argv, "o:n:");
+ switch (flag) {
+ case 'o':
+
+ // read from task file (might need to check for read and write permissions)
+ board_file = fopen(optarg, "r");
+ if (!board_file) {
+ printf("%s does not exist\n", optarg);
+ return 1;
+ }
+
+ char* lineptr = read_todo(board_file);
+ printf("lineptr: %p\n", lineptr);
+ printf("first: %c\n", *lineptr);
+ free(lineptr);
+ fclose(board_file);
+
+ break;
+
+ case 'n':
+
+ // make sure file does not exist
+ // however, it maybe be possible that an different error has occured (besides the file not existing)
+ if (access(optarg, F_OK) == 0) {
+ printf("%s already exists\n", optarg);
+ return 1;
+ }
+ // create a file here
+ printf("Successfully created %s\n", optarg);
+ break;
+
+ case -1:
+ case '?':
+ printf("Help string\n");
+ return 2;
+ }
+
+
+
+ return 0;
+
// start ncurses
initscr();
cbreak();
todo_win = create_list_win(20, 20, 5, 5);
move(y,x);
- while ((ch = getch()) != 113) {
+ while ((ch = getch()) != 113) { // while not q
- //ofc the first thing we need is vim keys
+ // ofc the first thing we need is vim keys
switch (ch) {
case 104: // h
x -= 1;
refresh();
}
+
+char*
+read_todo(FILE* file)
+{ // apparently getline isn't rly that portable, so consider other options
+ char* lineptr;
+ size_t len;
+ ssize_t nread;
+
+ lineptr = NULL;
+ len = 0;
+
+ while ((nread = getline(&lineptr, &len, file)) != -1) {
+ printf("Read line of size %zd\n", nread);
+ }
+
+ return lineptr;
+}
+
WINDOW*
create_list_win(int height, int width, int y, int x)
{