diff options
Diffstat (limited to 'src/main.c')
| -rw-r--r-- | src/main.c | 100 |
1 files changed, 4 insertions, 96 deletions
@@ -2,51 +2,9 @@ #include <stdlib.h> #include <string.h> #include <time.h> -#include <stdbool.h> -char *words[] = { - "a", "ab", "accusamus", "accusantium", "ad", "adipisci", "adipiscing", - "aliqua", "aliquam", "aliquid", "amet", "anim", "aperiam", "architecto", - "asperiores", "aspernatur", "assumenda", "at", "atque", "aut", "aute", - "autem", "beatae", "blanditiis", "cillum", "commodi", "commodo", - "consectetur", "consequat", "consequatur", "consequuntur", "corporis", - "corrupti", "culpa", "cum", "cumque", "cupidatat", "cupiditate", "debitis", - "delectus", "deleniti", "deserunt", "dicta", "dignissimos", "distinctio", - "do", "dolor", "dolore", "dolorem", "doloremque", "dolores", "doloribus", - "dolorum", "ducimus", "duis", "ea", "eaque", "earum", "eius", "eligendi", - "elit", "enim", "eos", "error", "esse", "est", "et", "eu", "eum", "eveniet", - "ex", "excepteur", "excepturi", "exercitation", "exercitationem", "expedita", - "explicabo", "facere", "facilis", "fuga", "fugiat", "fugit", "harum", "hic", - "id", "illo", "illum", "impedit", "in", "incidunt", "incididunt", "inventore", - "ipsum", "irure", "iste", "itaque", "labore", "laboriosam", "laboris", - "laborum", "laudantium", "libero", "lorem", "magna", "magnam", "magni", - "maiores", "maxime", "minima", "minim", "minus", "modi", "molestiae", - "molestias", "mollitia", "mollit", "nam", "natus", "necessitatibus", "nemo", - "neque", "nesciunt", "nihil", "nisi", "nobis", "non", "nostrud", "nulla", - "numquam", "occaecat", "odio", "odit", "officia", "omnis", "optio", - "pariatur", "perferendis", "perspiciatis", "placeat", "porro", "possimus", - "praesentium", "proident", "quae", "quaerat", "quam", "quas", "qui", "quia", - "quibusdam", "quidem", "quis", "quisquam", "quo", "ratione", "recusandae", - "reiciendis", "rem", "repellat", "repellendus", "reprehenderit", - "repudiandae", "rerum", "saepe", "sapiente", "sed", "sequi", "similique", - "sint", "sit", "soluta", "sunt", "suscipit", "tempor", "tempora", - "temporibus", "tempore", "tenetur", "totam", "ullamco", "ullam", "unde", "ut", - "vel", "velit", "veniam", "vero", "vitae", "voluptas", "voluptate", - "voluptatem", "voluptates", "voluptatibus", "voluptatum", -}; - -#define WORDS_COUNT sizeof(words) / sizeof(char*) - -enum { - MODE_WORD, - MODE_SENTENCE, - MODE_PARAGRAPH -}; - -int word_mode(int length, bool newline, bool capitalize); -int sentence_mode(int length, bool newline); -int paragraph_mode(int length, bool newline); -int print_help(); +#include "modes.h" +#include "help.h" int main(int argc, char **argv) { int mode = MODE_SENTENCE; @@ -98,55 +56,5 @@ int main(int argc, char **argv) { return paragraph_mode(length, true); } -int word_mode(int length, bool newline, bool capitalize) { - for (int i = 0; i < length; i++) { - int index = rand() % WORDS_COUNT; - char word[1024]; - strncpy(word, words[index], 1024); - if (i == 0 && capitalize) word[0] += 'A' - 'a'; - if (i == length - 1) printf("%s", word); - else printf("%s ", word); - } - if (newline) printf("\n"); - return 0; -} - -int sentence_mode(int length, bool newline) { - for (int i = 0; i < length; i++) { - int size = 10 + rand() % 20; - word_mode(size, false, true); - printf(". "); - if (newline) printf("\n"); - } - return 0; -} - -int paragraph_mode(int length, bool newline) { - for (int i = 0; i < length; i++) { - int size = 6 + rand() % 10; - sentence_mode(size, false); - if (newline) printf("\n\n"); - } - return 0; -} - -int print_help() { - printf("usage: lorem [OPTIONS]\n\n"); - printf("positional arguments:\n"); - printf(" mode\t\tgeneration mode: [w]ord, [l]ine/[s]entence, [p]aragraph (default: line)\n"); - printf(" length\t\tnumber of chunks to generate (default: 1)\n"); - printf("\noptions:\n"); - printf(" -h --help\t\tshow this message\n"); - printf("\nexamples:\n"); - printf(" lorem p 2\t\tgenerate 2 paragraphs\n"); - printf(" lorem w 2\t\tgenerate 2 words\n"); - printf(" lorem l 2\t\tgenerate 2 lines/sentences\n"); - 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 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"); - printf(" lorem sentence 2\tgenerate 2 lines/sentences\n"); - return 0; -} +#include "modes.c" +#include "help.c" |
