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:
commit
804254fe2e
118
src/echo.c
118
src/echo.c
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue