From 01943626868962dc873bde954d4b96d084916ccc Mon Sep 17 00:00:00 2001 From: dtb Date: Fri, 23 Sep 2022 20:28:10 -0400 Subject: [PATCH] uppercase(1) --- .gitignore | 6 ++++++ dist/Makefile | 22 +++++++++++++++++++++- lowercase/Makefile | 13 ++++++++----- lowercase/lowercase.c | 18 ++++++++++++++---- 4 files changed, 49 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index d8b0dbf..b0414e9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,12 @@ dist/ echo/echo +lowercase/lowercase +lowercase/uppercase nonzero/nonzero roll/roll rot13/rot13 +simexec/simexec str/str +streq/streq +sysexits/sysexits +sysexits/sysexits.h diff --git a/dist/Makefile b/dist/Makefile index 0d2367f..281fd20 100644 --- a/dist/Makefile +++ b/dist/Makefile @@ -1,5 +1,6 @@ .PHONY: dirs dirs: bin share/man/man1 + bin: mkdir -p bin share/man/man1: @@ -38,6 +39,20 @@ bin/nonzero: bin ../nonzero/nonzero ../nonzero/nonzero: $(MAKE) -C ../nonzero sane +.PHONY: simexec +simexec: bin/simexec +bin/simexec: bin ../simexec/simexec + cp ../simexec/simexec bin/simexec +../simexec/simexec: + $(MAKE) -C ../simexec sane + +.PHONY: sleep +sleep: bin/sleep +bin/sleep: bin ../sleep/sleep + cp ../sleep/sleep bin/sleep +../sleep/sleep: + $(MAKE) -C ../sleep sane + .PHONY: str str: bin/str bin/str: bin ../str/str @@ -52,7 +67,12 @@ bin/streq: bin ../streq/streq ../streq/streq: $(MAKE) -C ../streq sane +.PHONY: uppercase +uppercase: bin/uppercase ../lowercase/lowercase +bin/uppercase: bin ../lowercase/uppercase + cp ../lowercase/uppercase bin/ + .PHONY: volume -volume: bin/volume +volume: bin/volume str bin/volume: bin ../volume/volume cp ../volume/volume* bin/ diff --git a/lowercase/Makefile b/lowercase/Makefile index 83854c9..4058acc 100644 --- a/lowercase/Makefile +++ b/lowercase/Makefile @@ -1,9 +1,12 @@ -all: lowercase +all: lowercase uppercase clean: - rm -f lowercase -sane: lowercase + rm -f lowercase uppercase +sane: all -lowercase: ../ascii/ascii.h lowercase.c - $(CC) -I../ascii/ -o lowercase lowercase.c +lowercase: lowercase.c + $(CC) -DLOWERCASE -o lowercase lowercase.c + +uppercase: lowercase.c + $(CC) -DUPPERCASE -o uppercase lowercase.c .PHONY: all clean sane diff --git a/lowercase/lowercase.c b/lowercase/lowercase.c index 40e93ef..83d9ae0 100644 --- a/lowercase/lowercase.c +++ b/lowercase/lowercase.c @@ -1,4 +1,3 @@ -#include /* ASCII_MAX_VALUE */ #include /* fprintf(3), getc(3), putc(3), stderr, stdin, stdout */ #include /* exit(3) */ #include /* EX_OK, EX_USAGE, EX_SOFTWARE */ @@ -6,13 +5,16 @@ /* Enable Unicode support using official Unicode library. */ #ifdef USE_ICU -# include /* UCHAR_MAX_VALUE, u_tolower(3) */ +# include + /* UCHAR_MAX_VALUE, u_tolower(3), u_toupper(3) */ # include /* UChar32 */ # include /* u_fgetc(3) */ #else -# include /* tolower(3) */ +# include /* tolower(3), toupper(3) */ #endif /* USE_ICU */ +#define ASCII_MAX_VALUE 0x7F + int main(int argc, char *argv[]){ #ifdef USE_ICU UChar32 @@ -30,14 +32,22 @@ int main(int argc, char *argv[]){ #ifdef USE_ICU while((c = u_fgetc(stdin)) != U_EOF){ if(c <= UCHAR_MAX_VALUE && c >= 0) +# ifdef LOWERCASE c = u_tolower(c); +# else + c = u_toupper(c); +# endif /* ifdef LOWERCASE */ u_fputc(c, stdout); #else while((c = getc(stdin)) != EOF){ if(c <= ASCII_MAX_VALUE && c >= 0) +# ifdef LOWERCASE c = tolower(c); +# else + c = toupper(c); +# endif /* ifdef LOWERCASE */ putc(c, stdout); -#endif +#endif /* ifdef USE_ICU */ } return EX_OK; }