Introduction
Introduction Statistics Contact Development Disclaimer Help
small changes to status bar + remove trailing blanks - gramscii - A simple edit…
Log
Files
Refs
Tags
README
LICENSE
---
commit ad0b403caa61c3f1c07698ffe6952588861d98c2
parent 2f5d0a4be8c029c5a4d1279be8823604db2c0fc2
Author: KatolaZ <[email protected]>
Date: Sat, 20 Jul 2019 10:49:14 +0100
small changes to status bar + remove trailing blanks
Diffstat:
M gramscii.c | 53 ++++++++++++++++-------------…
1 file changed, 28 insertions(+), 25 deletions(-)
---
diff --git a/gramscii.c b/gramscii.c
@@ -106,18 +106,21 @@ char* state_str(){
default:
return "ERR";
}
- return "ERR";
+ return "ERR";
}
void status_bar(){
-
+
printf("\033[%d;1f\033[7m", HEIGHT+1);
printf("%100s", " ");
printf("\033[%d;1f\033[7m", HEIGHT+1);
- printf(" x: %3d y: %3d -- mode: %4s hl: %c vl: %c cn: %c <: %c >: %c %…
+ printf(" x:%3d y:%3d -- MODE:%4s HL:%c VL:%c CN:%c SM:%c EM:%c %10s",
x, y, state_str(), line_h, line_v, corner, mark_st, mark_end, …
- printf(" [%s]", fname );
+ if (!modified)
+ printf(" [%s]", fname );
+ else
+ printf(" *%s*", fname );
printf("\033[0m");
}
@@ -169,7 +172,7 @@ void set_xy(int x, int y, char c){
void draw_xy(int x, int y, char c){
/* FIXME: check if x and y are valid!!!! */
printf("\033[%d;%df",y+1,x+1);
- putchar(c);
+ putchar(c);
}
void update_current(){
@@ -194,7 +197,7 @@ void check_bound(){
if (x<0) x=0;
else if (x>=WIDTH) x = WIDTH-1;
if (y<0) y=0;
- else if (y>=HEIGHT) y = HEIGHT -1;
+ else if (y>=HEIGHT) y = HEIGHT -1;
}
void init_screen(){
@@ -215,7 +218,7 @@ void init_screen(){
void redraw(){
int i;
-
+
printf("\033[2J\033[1;1H");
for (i=0;i<HEIGHT;i++){
fprintf(stdout,"%s\n",screen[i]);
@@ -228,10 +231,10 @@ int move_around(char c){
switch(c){
case 'H': step = 5;
- case 'h':
+ case 'h':
dir = DIR_L;
x -= step;
- break;
+ break;
case 'J': step = 5;
case 'j':
dir = DIR_D;
@@ -286,11 +289,11 @@ void toggle_hline(){
cur_hl = (cur_hl + 1) % hlines_sz;
line_h = hlines[cur_hl];
-
+
}
void toggle_corner(){
-
+
cur_corn = (cur_corn + 1 ) % corners_sz;
corner = corners[cur_corn];
@@ -304,13 +307,13 @@ void toggle_vline(){
}
void toggle_st_mark(){
-
+
cur_start = (cur_start + 1 ) % stmarks_sz;
mark_st = st_marks[cur_start];
}
void toggle_end_mark(){
-
+
cur_end = (cur_end+ 1 ) % endmarks_sz;
mark_end = end_marks[cur_end];
}
@@ -323,12 +326,12 @@ void init(){
signal(SIGINT, cleanup);
signal(SIGTERM, cleanup);
signal(SIGQUIT, cleanup);
-
+
tcgetattr(0, &t1);
t2 = t1;
t2.c_lflag &= ~(ICANON | ECHO);
tcsetattr(0, TCSANOW, &t2);
-
+
init_screen();
x = WIDTH/2;
y = HEIGHT/2;
@@ -343,7 +346,7 @@ void init(){
void get_text(){
char c;
int orig_x = x;
-
+
redraw();
while((c=getchar())!=EOF && c != 27){
if(c=='\n'){
@@ -377,7 +380,7 @@ void draw_box(int x1, int y1, int fix){
f = set_xy;
else
f = draw_xy;
-
+
xmin = MIN(x, x1);
xmax = MAX(x, x1);
ymin = MIN(y, y1);
@@ -429,7 +432,7 @@ void draw_arrow(int x, int y, char *a, int a_len, int fix){
char line;
void (*f)(int, int, char);
-
+
if (fix == FIX)
f = set_xy;
else
@@ -454,7 +457,7 @@ void draw_arrow(int x, int y, char *a, int a_len, int fix){
line = (a[i] & DIR_L) || (a[i] & DIR_R) ? line_h : lin…
x += progr_x(a[i]);
y += progr_y(a[i]);
- f(x, y, line);
+ f(x, y, line);
}
/* f(x,y,mark_end);*/
cur_dir = a[i];
@@ -476,7 +479,7 @@ void get_arrow(){
}
arrow_len = 0;
dir = DIR_N;
-
+
redraw();
step = 1;
draw_arrow(x,y, arrow, 0, NOFIX);
@@ -549,7 +552,7 @@ void delete(){
void write_file(){
FILE *f;
int i;
-
+
if (!fname[0] || force_new){
get_string("Write to: ", fname, 255);
if (f=fopen(fname, "r")){
@@ -612,6 +615,8 @@ void new_file(){
modified=0;
}
+/*** Commands ***/
+
void commands(){
char c;
@@ -664,10 +669,10 @@ void commands(){
case '|':
toggle_vline();
break;
- case '+':
+ case '+':
toggle_corner();
break;
- case '<':
+ case '<':
toggle_st_mark();
break;
case '>':
@@ -690,8 +695,6 @@ void commands(){
}
-
-
int main(int argc, char *argv[]){
init();
You are viewing proxied material from bitreich.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.