nne

No-nonsense editor under 777 SLOC of ANSI C
git clone git://git.luxferre.top/nne.git
Log | Files | Refs | README | LICENSE

commit df633e073bf3d22b63be25c4eeb82c37852bb43e
parent 7e93e8afd7d97bd2ae5af95515b4fdb5902c2a10
Author: luxferre <lux@ferre>
Date:   Fri, 28 Jul 2023 16:03:44 +0300

Moved to \033 as the most compatible esc representation

Diffstat:
Mnne.c | 72++++++++++++++++++++++++++++++++++++------------------------------------
1 file changed, 36 insertions(+), 36 deletions(-)

diff --git a/nne.c b/nne.c @@ -36,24 +36,24 @@ #endif /* terminal control macros (constants) */ -#define ERESET "\x1b[0m" /* reset the styling */ -#define CLS "\x1b[2J" /* clear the entire screen */ -#define LINECLR "\x1b[2K" /* clear the current line */ -#define CURRESET "\x1b[0;0H" /* reset the visual cursor */ +#define ERESET "\033[0m" /* reset the styling */ +#define CLS "\033[2J" /* clear the entire screen */ +#define LINECLR "\033[2K" /* clear the current line */ +#define CURRESET "\033[0;0H" /* reset the visual cursor */ #ifdef NNE_NO_ALTBUF /* can be defined for legacy terminals */ #define CURSHOW "" #define CURHIDE "" #define ALTBUFON "" #define ALTBUFOFF CLS /* if no altbuf, then clear the screen */ #else -#define CURSHOW "\x1b[?25h" /* show the cursor */ -#define CURHIDE "\x1b[?25l" /* hide the cursor */ -#define ALTBUFON "\x1b[?47h\x1b%G" /* turn on alternate screen + UTF-8 */ -#define ALTBUFOFF "\x1b[?47l" /* turn off alternate screen */ +#define CURSHOW "\033[?25h" /* show the cursor */ +#define CURHIDE "\033[?25l" /* hide the cursor */ +#define ALTBUFON "\033[?47h\033%G" /* turn on alternate screen + UTF-8 */ +#define ALTBUFOFF "\033[?47l" /* turn off alternate screen */ #endif /* terminal control macros (sprintf templates) */ -#define CURSET "\x1b[%03u;%03uH" /* set the cursor position (line;col) */ +#define CURSET "\033[%03u;%03uH" /* set the cursor position (line;col) */ /* some enums */ enum nne_modes { NNE_NORMAL = 1, NNE_CMD }; /* operation modes */ @@ -97,46 +97,46 @@ static int nne_line_offset = 0; /* offset from the start to the screen */ /* help screen */ -static char* nne_help_screen = "\x1b[s\ +static char* nne_help_screen = "\033[s\ ---------------------------- nne shortcut help ---------------------------\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ | |\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ |Save Esc Esc s, Esc Esc w Line jump Esc Esc l [num] Return |\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ |Quit Esc Esc q Brace match Esc Esc 5 |\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ |Tab char Esc Esc Tab Find text Esc Esc / [text] Return|\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ |Delete Del, Esc Esc Bksp Copy line Esc Esc y |\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ |Page Up PgUp, Esc Esc Up Copy lines Esc Esc Y [num] Return |\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ |Page Down PgDn, Esc Esc Down Cut line Esc Esc d |\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ |Home Home, Esc Esc 0 Cut lines Esc Esc D [num] Return |\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ |End End, Esc Esc 4 Paste Esc Esc p, Esc Esc v |\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ |Next word Esc Esc Right Discard/undo Esc Esc u |\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ |Prev word Esc Esc Left Run shell Esc Esc e [cmd] Return |\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ |File start Esc Esc 8 This help Esc Esc h |\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ |File end Esc Esc 9 |\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ | |\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ | Created by Luxferre in 2023 |\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ | Released into public domain |\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ | |\ -\x1b[1B\x1b[74D\ +\033[1B\033[74D\ | Press Return to exit this screen |\ -\x1b[1B\x1b[74D\ ---------------------------------------------------------------------------\x1b[u"; +\033[1B\033[74D\ +--------------------------------------------------------------------------\033[u"; /* elementary routines */ @@ -432,7 +432,7 @@ uint nne_prompt(char *prompt) { nne_cmdbuf[rd-1] = 0; /* zero out the character */ rd--; /* decrement the read counter */ /* move cursor back and erase until the end of the line */ - nnmsg(1, "\x1b[%uD\x1b[0K", c == '\t' ? NNE_TABWIDTH : 1); + nnmsg(1, "\033[%uD\033[0K", c == '\t' ? NNE_TABWIDTH : 1); } break; case K_ESC: case K_MODCMD: endinput = 1; rd = 0; break; /* abort */ @@ -539,16 +539,16 @@ void render() { /* main screen rendering function */ /* platform-independent terminal size detection */ static void nne_termsize() { - if(write(1, "\x1b[s\x1b[999C\x1b[999B", 15) != 15) return; - if(write(1, "\x1b[6n", 4) != 4) return; + if(write(1, "\033[s\033[999C\033[999B", 15) != 15) return; + if(write(1, "\033[6n", 4) != 4) return; char buf[32], i; for(i=0;i<31;i++) { if(read(0, &buf[i], 1) != 1) break; if(buf[i] == 'R') break; } - if(write(1, "\x1b[u", 3) != 3) return; /* restore the cursor position */ + if(write(1, "\033[u", 3) != 3) return; /* restore the cursor position */ buf[i] = 0; - if(buf[0] != '\x1b' || buf[1] != '[') return; + if(buf[0] != '\033' || buf[1] != '[') return; if(sscanf(&buf[2], "%hu;%hu", &nne_termh, &nne_termw) != 2) return; nne_scrsize = (nne_termw * nne_termh) << 2; /* update the byte size */ nne_scrbuf = realloc(nne_scrbuf, nne_scrsize); /* reallocate accordingly */ @@ -851,7 +851,7 @@ int nne_action(int key) { int main(int argc, char* argv[]) { /* editor entry point */ /* use the alternative screen buffer and enable UTF-8 */ - nnputs(ALTBUFON CLS "\x1b[?7h"); + nnputs(ALTBUFON CLS "\033[?7h"); /* prepare screen */ tcgetattr(0, &tty_opts_backup); atexit(&cleanup);