tDraw status line at the bottom - ve - a minimal text editor (work in progress) | |
git clone git://src.adamsgaard.dk/ve | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 87aab360fcdd4649b2d1f3349f589f51bc69976b | |
parent be10ead5325b9450f1a985058b8740a088424e3f | |
Author: Anders Damsgaard <[email protected]> | |
Date: Tue, 6 Aug 2019 10:14:40 +0200 | |
Draw status line at the bottom | |
Diffstat: | |
A byote.h | 7 +++++++ | |
M output.c | 21 ++++++++++++++++++++- | |
2 files changed, 27 insertions(+), 1 deletion(-) | |
--- | |
diff --git a/byote.h b/byote.h | |
t@@ -0,0 +1,7 @@ | |
+#ifndef BYOTE_H_ | |
+#define BYOTE_H_ | |
+ | |
+#define PROGNAME "byote" | |
+#define VERSION "0.0.1" | |
+ | |
+#endif | |
diff --git a/output.c b/output.c | |
t@@ -1,8 +1,10 @@ | |
#include <unistd.h> | |
#include <string.h> | |
#include <stdlib.h> | |
+#include <stdio.h> | |
#include "terminal.h" | |
#include "output.h" | |
+#include "byote.h" | |
/* reallocate append buffer to hold string s */ | |
void | |
t@@ -23,6 +25,18 @@ ab_free(struct abuf *ab) { | |
free(ab->b); | |
} | |
+void | |
+draw_status_string(struct abuf *ab) | |
+{ | |
+ char status[80]; | |
+ int statuslen; | |
+ statuslen = snprintf(status, sizeof(status), | |
+ "%s editor -- version %s", PROGNAME, VERSION); | |
+ if (statuslen > E.screencols) | |
+ statuslen = E.screencols; | |
+ ab_append(ab, status, statuslen); | |
+} | |
+ | |
/* draw editor screen. | |
* show tilde characters after EOF */ | |
void | |
t@@ -30,7 +44,12 @@ editor_draw_rows(struct abuf *ab) | |
{ | |
int y; | |
for (y = -1; y < E.screenrows; ++y) { | |
- ab_append(ab, "~", 1); | |
+ | |
+ if (y == E.screenrows-1) | |
+ draw_status_string(ab); | |
+ else | |
+ ab_append(ab, "~", 1); | |
+ | |
ab_append(ab, "\x1b[K", 3); /* erase to end of line */ | |
if (y < E.screenrows - 1) | |
ab_append(ab, "\r\n", 2); |