Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <ctype.h>
- #include <limits.h>
- #include <stdio.h>
- #include <stdlib.h>
- enum arg_count
- {
- WIDTH_ONLY_ARGS = 2,
- WIDTH_HEIGHT_ARGS = 3
- };
- enum arg_position
- {
- WIDTH_ARG = 1,
- HEIGHT_ARG = 2
- };
- #define DECIMAL 10
- typedef enum
- {
- FALSE,
- TRUE
- } BOOLEAN;
- BOOLEAN strtoint(const char* str, int* result)
- {
- long lresult;
- char* end;
- lresult = strtol(str, &end, DECIMAL);
- if (*end)
- {
- fprintf(stderr, "Error: non-numeric data encountered.\n");
- return FALSE;
- }
- if (lresult < INT_MIN || lresult > INT_MAX)
- {
- fprintf(stderr,
- "Error: number outside the range of a valid int.\n");
- return FALSE;
- }
- *result = lresult;
- return TRUE;
- }
- int main(int argc, char** argv)
- {
- int width, height;
- switch (argc)
- {
- case WIDTH_ONLY_ARGS:
- if (strtoint(argv[WIDTH_ARG], &width))
- {
- printf("\e[8;35;%dt", width);
- }
- else
- {
- return EXIT_FAILURE;
- }
- break;
- case WIDTH_HEIGHT_ARGS:
- if (strtoint(argv[WIDTH_ARG], &width) &&
- strtoint(argv[HEIGHT_ARG], &height))
- {
- printf("\e[8;%d;%dt", height, width);
- }
- else
- {
- return EXIT_FAILURE;
- }
- break;
- default:
- fprintf(stderr,
- "Error: invalid number of arguments.\n");
- return EXIT_FAILURE;
- }
- return EXIT_SUCCESS;
- }
Add Comment
Please, Sign In to add comment