@@ -125,10 +125,10 @@ diff --git a/kilo.c b/kilo.c
125125 char c;
126126- while (read(STDIN_FILENO, &c, 1) == 1 && c != 'q');
127127+ while (read(STDIN_FILENO, &c, 1) == 1 && c != 'q') {
128- + if (isprint(c)) {
129- + printf("%d ('%c')\n", c, c);
130- + } else {
128+ + if (iscntrl(c)) {
131129+ printf("%d\n", c);
130+ + } else {
131+ + printf("%d ('%c')\n", c, c);
132132+ }
133133+ }
134134+
@@ -210,12 +210,12 @@ diff --git a/kilo.c b/kilo.c
210210@@ -28,9 +28,9 @@ int main() {
211211 char c;
212212 while (read(STDIN_FILENO, &c, 1) == 1 && c != 'q') {
213- if (isprint(c)) {
214- - printf("%d ('%c')\n", c, c);
215- + printf("%d ('%c')\r\n", c, c);
216- } else {
213+ if (iscntrl(c)) {
217214- printf("%d\n", c);
218215+ printf("%d\r\n", c);
216+ } else {
217+ - printf("%d ('%c')\n", c, c);
218+ + printf("%d ('%c')\r\n", c, c);
219219 }
220220 }
221221
@@ -258,10 +258,10 @@ diff --git a/kilo.c b/kilo.c
258258+ while (1) {
259259+ char c = '\0';
260260+ read(STDIN_FILENO, &c, 1);
261- if (isprint(c)) {
262- printf("%d ('%c')\r\n", c, c);
263- } else {
261+ if (iscntrl(c)) {
264262 printf("%d\r\n", c);
263+ } else {
264+ printf("%d ('%c')\r\n", c, c);
265265 }
266266+ if (c == 'q') break;
267267 }
@@ -325,8 +325,8 @@ diff --git a/kilo.c b/kilo.c
325325 char c = '\0';
326326- read(STDIN_FILENO, &c, 1);
327327+ if (read(STDIN_FILENO, &c, 1) == -1 && errno != EAGAIN) die("read");
328- if (isprint (c)) {
329- printf("%d ('%c') \r\n", c , c);
328+ if (iscntrl (c)) {
329+ printf("%d\r\n", c);
330330 } else {
331331
332332~~~ step: sections c1
@@ -381,10 +381,10 @@ diff --git a/kilo.c b/kilo.c
381381 while (1) {
382382 char c = '\0';
383383 if (read(STDIN_FILENO, &c, 1) == -1 && errno != EAGAIN) die("read");
384- - if (isprint(c)) {
385- - printf("%d ('%c')\r\n", c, c);
386- - } else {
384+ - if (iscntrl(c)) {
387385- printf("%d\r\n", c);
386+ - } else {
387+ - printf("%d ('%c')\r\n", c, c);
388388- }
389389- if (c == 'q') break;
390390+ if (c == CTRL_KEY('q')) break;
@@ -665,10 +665,10 @@ diff --git a/kilo.c b/kilo.c
665665+ printf("\r\n");
666666+ char c;
667667+ while (read(STDIN_FILENO, &c, 1) == 1) {
668- + if (isprint(c)) {
669- + printf("%d ('%c')\r\n", c, c);
670- + } else {
668+ + if (iscntrl(c)) {
671669+ printf("%d\r\n", c);
670+ + } else {
671+ + printf("%d ('%c')\r\n", c, c);
672672+ }
673673+ }
674674+
@@ -705,10 +705,10 @@ diff --git a/kilo.c b/kilo.c
705705- printf("\r\n");
706706- char c;
707707- while (read(STDIN_FILENO, &c, 1) == 1) {
708- - if (isprint(c)) {
709- - printf("%d ('%c')\r\n", c, c);
710- - } else {
708+ - if (iscntrl(c)) {
711709- printf("%d\r\n", c);
710+ - } else {
711+ - printf("%d ('%c')\r\n", c, c);
712712- }
713713+ while (i < sizeof(buf) - 1) {
714714+ if (read(STDIN_FILENO, &buf[i], 1) != 1) break;
@@ -3106,7 +3106,7 @@ diff --git a/kilo.c b/kilo.c
31063106+ editorSetStatusMessage("");
31073107+ return buf;
31083108+ }
3109- + } else if (isprint (c)) {
3109+ + } else if (!iscntrl (c)) {
31103110+ if (buflen == bufsize - 1) {
31113111+ bufsize *= 2;
31123112+ buf = realloc(buf, bufsize);
@@ -3330,7 +3330,7 @@ diff --git a/kilo.c b/kilo.c
33303330+ if (callback) callback(buf, c);
33313331 return buf;
33323332 }
3333- } else if (isprint (c)) {
3333+ } else if (!iscntrl (c)) {
33343334@@ -594,6 +596,8 @@ char *editorPrompt(char *prompt) {
33353335 buf[buflen++] = c;
33363336 buf[buflen] = '\0';
@@ -4301,8 +4301,8 @@ diff --git a/kilo.c b/kilo.c
43014301 int j;
43024302 for (j = 0; j < len; j++) {
43034303- if (hl[j] == HL_NORMAL) {
4304- + if (!isprint (c[j])) {
4305- + char sym = (c[j] >= 0 && c[j] <= 26) ? '@' + c[j] : '?';
4304+ + if (iscntrl (c[j])) {
4305+ + char sym = (c[j] <= 26) ? '@' + c[j] : '?';
43064306+ abAppend(ab, "\x1b[7m", 4);
43074307+ abAppend(ab, &sym, 1);
43084308+ abAppend(ab, "\x1b[m", 3);
0 commit comments