Merge pull request 'while loop more efficient' (#2) from robyndrake/coreutils:main into main

Reviewed-on: https://codeberg.org/GRU/coreutils/pulls/2
This commit is contained in:
g1n 2021-12-25 10:28:16 +01:00
commit 804254fe2e
1 changed files with 59 additions and 59 deletions

View File

@ -3,63 +3,63 @@
#include <stdbool.h>
int main(int argc, char *argv[]) {
bool newline = true; // Enables newline in the end (to disable use arg -n)
bool escapes = false; // Enables backslash-escaped characters (to enable use arg -e)
for (int i = 1; i < argc; i++) {
if (!strcmp(argv[i], "-n")) {
newline = false;
} else if (!strcmp(argv[i], "-e")) {
escapes = true;
} else if (!strcmp(argv[i], "-E")) {
escapes = false;
} else {
if (escapes) {
for (size_t j = 0; j < strlen(argv[i]); j++) {
if (argv[i][j] == '\\') {
j++;
switch(argv[i][j]) {
case 'b':
printf("\b");
break;
case 'c':
return 0;
case 'e':
printf("\e");
break;
case 'f':
printf("\f");
break;
case 'n':
printf("\n");
break;
case 'r':
printf("\r");
break;
case 't':
printf("\t");
break;
case 'v':
printf("\v");
break;
case '\\':
printf("\\");
break;
default:
printf("\\%c", argv[i][j]);
}
} else {
printf("%c", argv[i][j]);
}
}
} else {
printf("%s", argv[i]);
}
if (i < argc - 1)
printf(" ");
}
}
if (newline) {
printf("\n");
}
return 0;
bool newline = true; // Enables newline in the end (to disable use arg -n)
bool escapes = false; // Enables backslash-escaped characters (to enable use arg -e)
for (int i = 1; i < argc; i++) {
if (!strcmp(argv[i], "-n")) {
newline = false;
} else if (!strcmp(argv[i], "-e")) {
escapes = true;
} else if (!strcmp(argv[i], "-E")) {
escapes = false;
} else {
if (escapes) {
for (size_t j = 0; j < strlen(argv[i]); j++) {
if (argv[i][j] == '\\') {
j++;
switch(argv[i][j]) {
case 'b':
putchar('\b');
break;
case 'c':
return 0;
case 'e':
putchar('\e');
break;
case 'f':
putchar('\f');
break;
case 'n':
putchar('\n');
break;
case 'r':
putchar('\r');
break;
case 't':
putchar('\t');
break;
case 'v':
putchar('\v');
break;
case '\\':
putchar("\\");
break;
default:
printf("\\%c", argv[i][j]);
}
} else {
printf("%c", argv[i][j]);
}
}
} else {
printf("%s", argv[i]);
}
if (i < argc - 1)
putchar(' ');
}
}
if (newline) {
putchar('\n');
}
return 0;
}