ploot-text.c - ploot - simple plotting tools HTML git clone git://bitreich.org/ploot git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/ploot DIR Log DIR Files DIR Refs DIR Tags DIR README DIR LICENSE --- ploot-text.c (1094B) --- 1 #include <assert.h> 2 #include <stdio.h> 3 #include <unistd.h> 4 #include <stdlib.h> 5 #include <string.h> 6 #include <errno.h> 7 8 #ifndef __OpenBSD__ 9 #define pledge(...) 0 10 #endif 11 12 #include "drawille.h" 13 #include "font.h" 14 #include "util.h" 15 16 void 17 usage(void) 18 { 19 fprintf(stderr, "usage: %s [-12] text\n", arg0); 20 exit(100); 21 } 22 23 int 24 main(int argc, char **argv) 25 { 26 struct font *ft; 27 struct drawille *drw; 28 char *text; 29 size_t h, w; 30 int c, row; 31 32 if (pledge("stdio", "") < 0) 33 err(1, "pledge: %s", strerror(errno)); 34 35 ft = &font8; 36 arg0 = *argv; 37 while ((c = getopt(argc, argv, "12")) > -1) { 38 switch (c) { 39 case '1': 40 ft = &font8; 41 break; 42 case '2': 43 ft = &font13; 44 break; 45 default: 46 usage(); 47 } 48 } 49 argc -= optind; 50 argv += optind; 51 52 if (argc != 1) 53 usage(); 54 55 text = *argv; 56 57 h = (ft->height + 3) / 4; 58 w = font_strlen(ft, text) / 2; 59 if ((drw = drawille_new(h, w)) == NULL) 60 err(1, "drawille_new: %s", strerror(errno)); 61 drawille_text(drw, 0, 0, ft, text); 62 63 for (row = 0; row < drw->row; row++) { 64 drawille_put_row(stdout, drw, row); 65 fprintf(stdout, "\n"); 66 } 67 68 free(drw); 69 return 0; 70 }