aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAargh Rai <aargh.rai+git@gmail.com>2026-06-15 11:45:38 +0530
committerAargh Rai <aargh.rai+git@gmail.com>2026-06-15 11:45:38 +0530
commit151fdb4e61cf8e6a8344d10522a0825d5f6ed675 (patch)
tree2fa9a1ebbe40ee9d55bfd1a9e222b9c5b59d265d
parent42567a5ac86b20f2a591195e6ec389d5d2cc7ce7 (diff)
fixed an issue with length not have a default when mode is specified
-rw-r--r--README.md14
-rw-r--r--src/help.c1
-rw-r--r--src/main.c44
3 files changed, 37 insertions, 22 deletions
diff --git a/README.md b/README.md
index 56a5e7c..e0792d6 100644
--- a/README.md
+++ b/README.md
@@ -13,14 +13,16 @@ options:
-h --help show this message
examples:
- lorem p 2 generate 2 paragraphs
- lorem w 2 generate 2 words
- lorem l 2 generate 2 lines/sentences
- lorem s 2 generate 2 lines/sentences
- lorem 2 generate 2 lines/sentences
- lorem generate 1 line/sentence
+ lorem p 2 generate 2 paragraphs
+ lorem w 2 generate 2 words
+ lorem l 2 generate 2 lines/sentences
+ lorem s 2 generate 2 lines/sentences
+ lorem 2 generate 2 lines/sentences
+ lorem generate 1 line/sentence
+ lorem p generate 1 paragraph
lorem paragraph 2 generate 2 paragraphs
lorem word 2 generate 2 words
lorem line 2 generate 2 lines/sentences
lorem sentence 2 generate 2 lines/sentences
+
```
diff --git a/src/help.c b/src/help.c
index f5eedcc..14acfbf 100644
--- a/src/help.c
+++ b/src/help.c
@@ -16,6 +16,7 @@ int print_help() {
printf(" lorem s 2\t\tgenerate 2 lines/sentences\n");
printf(" lorem 2\t\tgenerate 2 lines/sentences\n");
printf(" lorem\t\t\tgenerate 1 line/sentence\n");
+ printf(" lorem p\t\tgenerate 1 paragraph\n");
printf(" lorem paragraph 2\tgenerate 2 paragraphs\n");
printf(" lorem word 2\t\tgenerate 2 words\n");
printf(" lorem line 2\t\tgenerate 2 lines/sentences\n");
diff --git a/src/main.c b/src/main.c
index 2398207..ccdd119 100644
--- a/src/main.c
+++ b/src/main.c
@@ -6,6 +6,22 @@
#include "modes.h"
#include "help.h"
+#define IS_WORD(x) ( \
+ (strcmp(x, "w") == 0) || \
+ (strcmp(x, "word") == 0) \
+ )
+#define IS_LINE(x) ( \
+ (strcmp(x, "l") == 0) || \
+ (strcmp(x, "s") == 0) || \
+ (strcmp(x, "line") == 0) || \
+ (strcmp(x, "sentence") == 0) \
+ )
+#define IS_PARA(x) ( \
+ (strcmp(x, "p") == 0) || \
+ (strcmp(x, "para") == 0) || \
+ (strcmp(x, "paragraph") == 0) \
+ )
+
int main(int argc, char **argv) {
int mode = MODE_SENTENCE;
int length = 1;
@@ -22,25 +38,21 @@ int main(int argc, char **argv) {
}
if (argc == 2) {
- length = atoi(argv[1]);
+ if (IS_LINE(argv[1])) {
+ mode = MODE_SENTENCE;
+ } else if (IS_PARA(argv[1])) {
+ mode = MODE_PARAGRAPH;
+ } else if (IS_WORD(argv[1])) {
+ mode = MODE_WORD;
+ } else {
+ length = atoi(argv[1]);
+ }
} else if (argc == 3) {
- if (
- (strcmp(argv[1], "l") == 0) ||
- (strcmp(argv[1], "line") == 0) ||
- (strcmp(argv[1], "s") == 0) ||
- (strcmp(argv[1], "sentence") == 0)
- ) {
+ if (IS_LINE(argv[1])) {
mode = MODE_SENTENCE;
- } else if (
- (strcmp(argv[1], "p") == 0) ||
- (strcmp(argv[1], "para") == 0) ||
- (strcmp(argv[1], "paragraph") == 0)
- ) {
+ } else if (IS_PARA(argv[1])) {
mode = MODE_PARAGRAPH;
- } else if (
- (strcmp(argv[1], "w") == 0) ||
- (strcmp(argv[1], "word") == 0)
- ) {
+ } else if (IS_WORD(argv[1])) {
mode = MODE_WORD;
}
length = atoi(argv[2]);