working on editor
This commit is contained in:
commit
1a917de4e9
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
build/
|
||||
obj/
|
||||
include/
|
||||
|
||||
47
Makefile
Executable file
47
Makefile
Executable file
@ -0,0 +1,47 @@
|
||||
NAME := sl_editor
|
||||
|
||||
CC := gcc
|
||||
|
||||
#-static -fsanitize=thread
|
||||
CFLAGS := -g -ggdb -fsanitize=address -fsanitize=undefined -Og -Wall -Wextra -Werror -std=c99 -pedantic
|
||||
|
||||
LDFLAGS :=
|
||||
|
||||
LDLIBS := -lasan -lubsan -lpthread -lreadline -lncurses
|
||||
|
||||
SRC_DIR := source
|
||||
|
||||
OBJ_DIR := obj
|
||||
|
||||
BUILD_DIR := build
|
||||
|
||||
SRC := $(wildcard $(SRC_DIR)/*.c)
|
||||
|
||||
OBJ := $(SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
|
||||
|
||||
all: $(NAME)
|
||||
|
||||
$(NAME): $(OBJ) | $(BUILD_DIR)
|
||||
$(CC) $(OBJ) $(LDFLAGS) $(LDLIBS) -o $(BUILD_DIR)/$(NAME)
|
||||
|
||||
$(OBJ_DIR)/%.o : $(SRC_DIR)/%.c $(wildcard $(SRC_DIR)/*.h)
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
$(OBJ_DIR):
|
||||
mkdir $(OBJ_DIR)
|
||||
|
||||
$(BUILD_DIR):
|
||||
mkdir $(BUILD_DIR)
|
||||
|
||||
$(OBJ): | $(OBJ_DIR)
|
||||
|
||||
clean:
|
||||
rm -f myshell
|
||||
|
||||
fclean: clean
|
||||
rm -rf $(OBJ_DIR)
|
||||
|
||||
re: fclean all
|
||||
|
||||
.PHONY: all clean fclean re $(NAME)
|
||||
|
||||
102
source/main.c
Normal file
102
source/main.c
Normal file
@ -0,0 +1,102 @@
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <readline/readline.h>
|
||||
#include <readline/history.h>
|
||||
|
||||
#include <ncurses.h>
|
||||
|
||||
#include <locale.h>
|
||||
|
||||
#define STB_DS_IMPLEMENTATION
|
||||
#include "../include/stb_ds.h"
|
||||
|
||||
int main(int ac, char** av, char** envp) {
|
||||
(void)ac;
|
||||
(void)av;
|
||||
(void)envp;
|
||||
|
||||
if (!setlocale(LC_ALL, "")) {
|
||||
printf("Unable to set local attributes from environment\n");
|
||||
return (-1);
|
||||
}
|
||||
bool running = true;
|
||||
WINDOW* editor = 0;
|
||||
WINDOW* edit_tab = 0;
|
||||
WINDOW* edit_ruler = 0;
|
||||
WINDOW* term = 0;
|
||||
WINDOW* document = 0;
|
||||
WINDOW* doc_tab = 0;
|
||||
WINDOW* doc_ruler = 0;
|
||||
initscr();
|
||||
cbreak();
|
||||
noecho();
|
||||
noqiflush();
|
||||
keypad(stdscr, TRUE);
|
||||
start_color();
|
||||
timeout(20);
|
||||
//nodelay(stdscr, TRUE);
|
||||
|
||||
printf("%ix%i\n", LINES, COLS);
|
||||
//2line for tab
|
||||
//1 colomn for middle sep
|
||||
//1 line for terminput
|
||||
//2 line for sep
|
||||
|
||||
edit_tab = subwin(stdscr, 1, COLS / 2, 0, 0);
|
||||
editor = subwin(stdscr, LINES - 4, COLS / 2, 2, 0);
|
||||
edit_ruler = subwin(stdscr, 1, COLS / 2, 1, 0);
|
||||
|
||||
doc_tab = subwin(stdscr, 1, COLS / 2, 0, COLS / 2);
|
||||
document = subwin(stdscr, LINES - 7, COLS / 2, 2, COLS / 2);
|
||||
doc_ruler = subwin(stdscr, 1, COLS / 2, LINES - 2, COLS / 2);
|
||||
|
||||
term = subwin(stdscr, 3, COLS - COLS % 2, LINES - 3, 0);
|
||||
|
||||
//terminfo();
|
||||
|
||||
rl_initialize();
|
||||
rl_inhibit_completion = true;//non zero = bypasscompletion
|
||||
//now need to have all my "window"
|
||||
int i = 0;
|
||||
while (running) {
|
||||
clear();
|
||||
wborder(editor, '|', '|', '-', '-', '-', '-', '-', '-');
|
||||
wborder(document, '|', '|', '-', '-', '-', '-', '-', '-');
|
||||
//box(editor, ACS_VLINE, ACS_HLINE);
|
||||
//box(document, ACS_VLINE, ACS_HLINE);
|
||||
box(term, ACS_VLINE, ACS_HLINE);
|
||||
|
||||
|
||||
refresh();
|
||||
wrefresh(edit_tab);
|
||||
wrefresh(editor);
|
||||
wrefresh(edit_ruler);
|
||||
wrefresh(doc_tab);
|
||||
wrefresh(document);
|
||||
wrefresh(doc_ruler);
|
||||
wrefresh(term);
|
||||
//move();
|
||||
int ch = getch();
|
||||
if (ch != ERR) {
|
||||
//process
|
||||
running = false;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
endwin();
|
||||
/* free(editor);
|
||||
free(edit_tab);
|
||||
free(edit_ruler);
|
||||
free(term);
|
||||
free(document);
|
||||
free(doc_tab);
|
||||
free(doc_ruler);
|
||||
*/
|
||||
printf("number of loop:%i\n", i);
|
||||
return (0);
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user