1 /* ---------- */
2 /* najitool.c */
3 /* ---------- */
4
5 /* najitool main module */
6
7 /* this .c is a part of */
8 /* najitool version 0.8.4 */
9
10 /* from najitool version 0.2.0 and */
11 /* above najitool will use libnaji */
12 /* this version uses libnaji 0.6.4 */
13
14 /* both najitool and libnaji */
15 /* are public domain and are */
16 /* made by the same author */
17 /* please read license.txt */
18
19 /* made by NECDET COKYAZICI */
20
21 #include "najitool.h"
22
23
24 /* ------------------- */
25 /* Program Exit Values */
26 /* ------------------- */
27
28 /* 0 - Program exited normally.
29 * 1 - Too many or too few parameters.
30 * 2 - Error opening input file.
31 * 3 - Ouput file already exists.
32 * 4 - Error opening output file.
33 * 5 - Error opening second input file.
34 * 6 - Error opening edit file.
35 * 7 - Unknown command.
36 * 8 - Help error.
37 * 9 - Memory allocation error.
38 */
39
40
41 unsigned long int naji_max_unsigned_long_int = 0;
42
43
44
45
46
47 const char * najitool_valid_commands[NAJITOOL_MAX_COMMANDS] = {
48 "8bit256",
49 "addim",
50 "addline",
51 "allbmp16",
52 "allfiles",
53 "arab2eng",
54 "asc2ebc",
55 "asctable",
56 "ay",
57 "ayinkaci",
58 "bigascif",
59 "bigascii",
60 "bin2c",
61 "bin2hexi",
62 "bin2text",
63 "blanka",
64 "bremline",
65 "bugun",
66 "bytsplit",
67 "calc",
68 "cat_head",
69 "cat_tail",
70 "cat_text",
71 "catrandl",
72 "ccompare",
73 "cfind",
74 "cfindi",
75 "charaftr",
76 "charbefr",
77 "charfile",
78 "charsort",
79 "charwrap",
80 "chchar",
81 "chchars",
82 "chstr",
83 "coffset",
84 "compare",
85 "copyfile",
86 "copyoffs",
87 "copyself",
88 "cpfroml",
89 "cptiline",
90 "credits",
91 "database",
92 "datetime",
93 "dayofmon",
94 "dos2unix",
95 "downlist",
96 "dumpoffs",
97 "e2ahtml",
98 "ebc2asc",
99 "eng2arab",
100 "engnum",
101 "eremline",
102 "f2lower",
103 "f2upper",
104 "filbreed",
105 "file2bin",
106 "file2dec",
107 "file2hex",
108 "filechop",
109 "filejoin",
110 "fillfile",
111 "find",
112 "findi",
113 "flipcopy",
114 "freverse",
115 "fswpcase",
116 "ftothe",
117 "gbsplit",
118 "gdivide",
119 "genhelp",
120 "genlic",
121 "getlinks",
122 "gigabyte",
123 "gminus",
124 "gplus",
125 "gtimes",
126 "help",
127 "hexicat",
128 "hilist",
129 "hmaker",
130 "hmakerf",
131 "howline",
132 "html2txt",
133 "html_db",
134 "htmlfast",
135 "htmlhelp",
136 "istrael",
137 "istreml",
138 "kbsplit",
139 "kitten",
140 "lcharvar",
141 "lcvfiles",
142 "leetfile",
143 "leetstr",
144 "length",
145 "lensortl",
146 "lensorts",
147 "license",
148 "lineback",
149 "linesnip",
150 "listdigt",
151 "listlowr",
152 "listprnt",
153 "listuppr",
154 "longline",
155 "makarray",
156 "mathgame",
157 "mbsplit",
158 "mergline",
159 "mjoin",
160 "mkpatch",
161 "month",
162 "mp3split",
163 "mp3taged",
164 "mp3tagnf",
165 "n2ch",
166 "n2str",
167 "najcrypt",
168 "naji_bmp",
169 "najirle",
170 "najisum",
171 "numlines",
172 "onlalnum",
173 "onlalpha",
174 "onlcntrl",
175 "onldigit",
176 "onlgraph",
177 "onllower",
178 "onlprint",
179 "onlpunct",
180 "onlspace",
181 "onlupper",
182 "onlxdigt",
183 "onlycat",
184 "onlychar",
185 "patch",
186 "printftx",
187 "putlines",
188 "qcrypt",
189 "qpatch",
190 "randkill",
191 "rbcafter",
192 "rbcbefor",
193 "rcharvar",
194 "rcvfiles",
195 "remline",
196 "removel",
197 "repcat",
198 "repcatpp",
199 "repchar",
200 "repcharp",
201 "replacel",
202 "revcat",
203 "revlines",
204 "rmunihtm",
205 "rndbfile",
206 "rndbsout",
207 "rndffill",
208 "rndlines",
209 "rndtfile",
210 "rndtsout",
211 "rrrchars",
212 "rstrach",
213 "rstrbch",
214 "rtcafter",
215 "rtcbefor",
216 "saat",
217 "saatarih",
218 "showline",
219 "skipcat",
220 "skipchar",
221 "skipstr",
222 "skpalnum",
223 "skpalpha",
224 "skpcntrl",
225 "skpdigit",
226 "skpgraph",
227 "skplower",
228 "skpprint",
229 "skppunct",
230 "skpspace",
231 "skpupper",
232 "skpxdigt",
233 "sort",
234 "sortlast",
235 "sp2ce2sp",
236 "sp2re2sp",
237 "spyramid",
238 "strachar",
239 "strbchar",
240 "strbline",
241 "streline",
242 "strfile",
243 "swapfeb",
244 "systemdt",
245 "tabspace",
246 "telltime",
247 "today",
248 "tothe",
249 "ttt",
250 "turnum",
251 "txt2html",
252 "unajirle",
253 "unblanka",
254 "unihtml",
255 "unix2dos",
256 "uudecode",
257 "uuencode",
258 "vowelwrd",
259 "weakrypt",
260 "wordline",
261 "wordwrap",
262 "wrdcount",
263 "year",
264 "yil",
265 "zerokill",
266 };
267
forhelp(void)268 void forhelp(void)
269 {
270
271 printf("\n");
272 printf(" For a list of najitool commands type the following:\n\n");
273
274 printf(" najitool help commands\n\n");
275
276 printf(" And to get detailed information on a particular command\n");
277 printf(" for example the command bin2c type the following:\n");
278 printf("\n");
279 printf(" najitool help bin2c\n\n");
280
281 }
282
283
najitool_check_command(char * cmd)284 void najitool_check_command(char *cmd)
285 {
286 int i;
287
288
289 for (i=0; i<NAJITOOL_MAX_COMMANDS; i++)
290 {
291
292 if (!strcmp(cmd, najitool_valid_commands[i]))
293 {
294 #ifdef NAJI_DEBUG
295 fprintf(stderr, "\n\nNAJI_DEBUG - VALID COMMAND: %s\n\n", cmd);
296 fgetc(stdin);
297 #endif
298 return;
299 }
300
301 }
302
303 fprintf(stderr, "\nError, unknown command: %s\n\n", cmd);
304 forhelp();
305
306 exit(7);
307 }
308
309
310
311
naji_stdin_msg(void)312 void naji_stdin_msg(void)
313 {
314 fprintf(stderr, "\nTaking input from standard input,\n");
315 fprintf(stderr, "usually keyboard.\n\n");
316 fprintf(stderr, "On most systems you can quit with\n");
317 fprintf(stderr, "pressing Ctrl and C at the same time.\n");
318 }
319
320
tooparam(char * cmd)321 void tooparam(char *cmd)
322 {
323 fprintf(stderr, "\n\n%s: too many parameters.\n", cmd);
324 najitool_command_help(cmd);
325 exit(1);
326 }
327
328
notparam(char * cmd)329 void notparam(char *cmd)
330 {
331 fprintf(stderr, "\n\n%s: not enough parameters.\n", cmd);
332 najitool_command_help(cmd);
333 exit(1);
334 }
335
336
337 #define begin_cmd(nt_cmd, minargs)\
338 if (!strcmp(argv[1], nt_cmd))\
339 {\
340 if (argc > minargs)\
341 tooparam(nt_cmd);\
342 if (argc < minargs)\
343 notparam(nt_cmd);\
344 if (argc == minargs) {
345
346 #define end_cmd() } return 0; }
347
348
main(int argc,char * argv[])349 int main(int argc, char *argv[])
350 {
351 unsigned int repeat=0;
352 char **tags;
353 int i;
354 int a;
355 int b;
356 float gdivide_a;
357 float gdivide_b;
358
359
360 char are_you_sure[100];
361
362 #ifdef NAJI_DEBUG
363
364 fprintf(stderr, "\n\n");
365 fprintf(stderr, "NAJI_DEBUG - check if two commands are displayed as one joined string,\n");
366 fprintf(stderr, " you might have missed a , in najitool_valid_commands[]\n\n");
367
368 for (i=0; i<NAJITOOL_MAX_COMMANDS; i++)
369 fprintf(stderr, "%s ", najitool_valid_commands[i]);
370 fgetc(stdin);
371
372 #endif /* NAJI_DEBUG */
373
374
375
376 #ifdef NAJI_DEBUG
377 fprintf(stderr, "\n\nNAJI_DEBUG - YOUR PARAMETERS/ARGUMENTS:\n\n");
378
379 for (i=0; i<argc; i++)
380 fprintf(stderr, "%s ", argv[i]);
381
382 fprintf(stderr, "\n\n");
383
384 fgetc(stdin);
385 #endif /* NAJI_DEBUG */
386
387
388
389 if (argc >= 2)
390 {
391 tolowers(argv[1]);
392 najitool_check_command(argv[1]);
393 }
394
395
396 if (argc == 1)
397 {
398 printf("\n\n");
399
400
401 /*
402 printf(" __ | \n");
403 printf(" / \\ | \n");
404 printf(" / _____| | o \\ \n");
405 printf(" | \\ o |___| \n");
406 printf(" \\____\\ \n");
407 printf(" o o T O O L \n");
408 */
409
410
411 printf(" __ | ********************************************\n");
412 printf(" / \\ | najitool 0.8.4 using libnaji 0.6.4 \n");
413 printf(" / _____| | o \\ both written by NECDET COKYAZICI \n");
414 printf(" | \\ o |___| and contributors \n");
415 printf(" \\____\\ ********************************************\n");
416 printf(" o o T O O L No warranty, to view the license type: \n");
417 printf(" najitool license \n");
418 printf(" http://najitool.sf.net/ ********************************************\n");
419 printf(" To view the credits type: najitool credits \n");
420 printf(" Public Domain, 2003-2011 ********************************************\n");
421 printf("\n");
422
423
424 forhelp();
425
426
427 return 0;
428 }
429
430
431
432 if (argc >= 2)
433 {
434
435
436 if (!strcmp(argv[1], "mp3taged"))
437 {
438
439 if ((argc % 2 != 1) | (argc == 3))
440 {
441 printf("mp3taged: too few arguments '%s'\n", argv[1]);
442 return 1;
443 }
444
445 /*
446 * we save the tags' options:
447 * tags[i] = <tag name>
448 * tags[i+1] = <user content>
449 * ..
450 */
451
452 tags = (char**) malloc (sizeof(char*)*(argc-3)*2);
453
454 for (i=0; i<(argc-3)*2; i+=2)
455 tags[i] = (char*) malloc(7*sizeof(char));
456
457 for (i=1; i<(argc-3)*2; i+=2)
458 tags[i] = argv[i+2];
459
460 for (i=0; i<(argc-3)*2; i+=2)
461 memcpy (tags[i], argv[i+2], 7);
462
463 mp3editag (argv[argc-1], tags, argc-3);
464
465 for (i=0; i<(argc-3)*2; i+=2)
466 free(tags[i]);
467
468 free(tags);
469
470 return 0;
471 }
472
473 if (!strcmp(argv[1], "credits"))
474 {
475
476 if (argc > 2)
477 tooparam("credits");
478
479 naji_credits();
480
481 return 0;
482 }
483
484 if (!strcmp(argv[1], "asctable"))
485 {
486
487 if (argc > 2)
488 tooparam("asctable");
489
490 asctable();
491 return 0;
492 }
493
494 if (!strcmp(argv[1], "engnum"))
495 {
496
497 if (argc > 2)
498 tooparam("engnum");
499
500 engnum();
501 return 0;
502 }
503
504 if (!strcmp(argv[1], "turnum"))
505 {
506
507 if (argc > 2)
508 tooparam("turnum");
509
510 turnum();
511 return 0;
512 }
513
514 if (!strcmp(argv[1], "najcrypt"))
515 {
516
517 if (argc > 2)
518 tooparam("najcrypt");
519
520 najcrypt();
521 return 0;
522 }
523
524 if (!strcmp(argv[1], "database"))
525 {
526
527 if (argc > 2)
528 tooparam("database");
529
530 naji_database();
531 return 0;
532 }
533
534 if (!strcmp(argv[1], "html_db"))
535 {
536
537 if (argc > 2)
538 tooparam("html_db");
539
540 naji_html_database();
541 return 0;
542 }
543
544 if (!strcmp(argv[1], "calc"))
545 {
546
547 if (argc > 2)
548 tooparam("calc");
549
550 naji_calc();
551 return 0;
552 }
553
554 if (!strcmp(argv[1], "length"))
555 {
556
557 if (argc > 2)
558 tooparam("length");
559
560 length();
561 return 0;
562 }
563
564 if (!strcmp(argv[1], "mathgame"))
565 {
566
567 if (argc > 2)
568 tooparam("mathgame");
569
570 mathgame();
571 return 0;
572 }
573
574 if (!strcmp(argv[1], "license"))
575 {
576
577 if (argc > 2)
578 tooparam("license");
579
580 naji_license();
581 return 0;
582 }
583
584 if (!strcmp(argv[1], "ttt"))
585 {
586
587 if (argc > 2)
588 tooparam("ttt");
589
590 ttt();
591 return 0;
592 }
593
594 if (!strcmp(argv[1], "naji_bmp"))
595 {
596 if (argc > 2)
597 tooparam("naji_bmp");
598
599 naji_bmp();
600 return 0;
601 }
602
603 if (!strcmp(argv[1], "unihtml"))
604 {
605
606 if (argc > 2)
607 tooparam("unihtml");
608
609 naji_gen_unicode_html_pages();
610 return 0;
611 }
612
613 if (!strcmp(argv[1], "rmunihtm"))
614 {
615
616 if (argc > 2)
617 tooparam("rmunihtm");
618
619 naji_del_gen_unicode_html_pages();
620 return 0;
621 }
622
623 if (!strcmp(argv[1], "cat_text"))
624 {
625
626 if (argc == 2)
627 {
628 naji_stdin_msg();
629 cat_text_stdin();
630 return 0;
631 }
632
633 if (argc == 3)
634 {
635 cat_text(argv[2]);
636 return 0;
637 }
638
639 if (argc > 3)
640 tooparam("cat_text");
641
642 return 0;
643 }
644
645 if (!strcmp(argv[1], "kitten"))
646 {
647
648 if (argc == 2)
649 {
650 naji_stdin_msg();
651 kitten_stdin();
652 return 0;
653 }
654
655 if (argc == 3)
656 {
657 kitten(argv[2]);
658 return 0;
659 }
660
661 if (argc > 3)
662 tooparam("kitten");
663
664 return 0;
665 }
666
667 if (!strcmp(argv[1], "genlic"))
668 {
669
670 if (argc > 2)
671 tooparam("genlic");
672
673 naji_genlic();
674 return 0;
675 }
676
677 if (!strcmp(argv[1], "genhelp"))
678 {
679
680 if (argc > 2)
681 tooparam("genhelp");
682
683 najitool_generate_help();
684 return 0;
685 }
686
687 if (!strcmp(argv[1], "htmlhelp"))
688 {
689 if (argc > 2)
690 tooparam("htmlhelp");
691
692 najitool_generate_help_html();
693 return 0;
694 }
695
696 if (!strcmp(argv[1], "systemdt"))
697 {
698 if (argc > 2)
699 tooparam("systemdt");
700
701 systemdt();
702 return 0;
703 }
704
705
706 if (!strcmp(argv[1], "datetime"))
707 {
708
709 if (argc > 2)
710 tooparam("datetime");
711
712 datetime();
713 return 0;
714 }
715
716 if (!strcmp(argv[1], "telltime"))
717 {
718
719 if (argc > 2)
720 tooparam("telltime");
721
722 printf("\n\n");
723 telltime();
724 printf("\n\n");
725
726 return 0;
727 }
728
729 if (!strcmp(argv[1], "today"))
730 {
731
732 if (argc > 2)
733 tooparam("today");
734
735 printf("\n\n");
736 today();
737 printf("\n\n");
738
739 return 0;
740 }
741
742 if (!strcmp(argv[1], "dayofmon"))
743 {
744
745 if (argc > 2)
746 tooparam("dayofmon");
747
748 printf("\n\n");
749 dayofmon();
750 printf("\n\n");
751
752 return 0;
753 }
754
755 if (!strcmp(argv[1], "month"))
756 {
757
758 if (argc > 2)
759 tooparam("month");
760
761 printf("\n\n");
762 month();
763 printf("\n\n");
764
765 return 0;
766 }
767
768 if (!strcmp(argv[1], "year"))
769 {
770
771 if (argc > 2)
772 tooparam("year");
773
774 printf("\n\n");
775 year();
776 printf("\n\n");
777
778 return 0;
779 }
780
781 if (!strcmp(argv[1], "saatarih"))
782 {
783
784 if (argc > 2)
785 tooparam("saatarih");
786
787 saatarih();
788 return 0;
789 }
790
791 if (!strcmp(argv[1], "saat"))
792 {
793
794 if (argc > 2)
795 tooparam("saat");
796
797 printf("\n\n");
798 saat();
799 printf("\n\n");
800
801 return 0;
802 }
803
804 if (!strcmp(argv[1], "bugun"))
805 {
806 if (argc > 2)
807 tooparam("bugun");
808
809 printf("\n\n");
810 bugun();
811 printf("\n\n");
812
813 return 0;
814 }
815
816 if (!strcmp(argv[1], "ayinkaci"))
817 {
818
819 if (argc > 2)
820 tooparam("ayinkaci");
821
822 printf("\n\n");
823 ayinkaci();
824 printf("\n\n");
825
826 return 0;
827 }
828
829 if (!strcmp(argv[1], "ay"))
830 {
831
832 if (argc > 2)
833 tooparam("ay");
834
835 printf("\n\n");
836 ay();
837 printf("\n\n");
838
839 return 0;
840 }
841
842 if (!strcmp(argv[1], "yil"))
843 {
844 if (argc > 2)
845 tooparam("yil");
846
847 printf("\n\n");
848 yil();
849 printf("\n\n");
850
851 return 0;
852 }
853
854
855 if (!strcmp(argv[1], "allbmp16"))
856 {
857 if (argc > 2)
858 tooparam("allbmp16");
859
860 printf("\n\n");
861 allbmp16();
862 printf("\n\n");
863
864 return 0;
865 }
866
867
868 if (!strcmp(argv[1], "help"))
869 {
870
871 if (argc == 2)
872 {
873 printf("\n\nAvailable help catagories:\n\n");
874 printf("commands\n");
875 printf("\n\n");
876 forhelp();
877 return 0;
878 }
879
880
881 if (argc == 3)
882 {
883
884 if (!strcmp(argv[2], "commands"))
885 najitool_help_commands();
886
887 else najitool_command_help(argv[2]);
888
889 return 0;
890 }
891
892
893 if (argc > 3)
894 tooparam("help");
895
896 return 0;
897 }
898
899
900
901 begin_cmd("mergline", 7)
902 mergline(argv[2], argv[3], argv[4], argv[5], argv[6]);
903 end_cmd()
904
905 begin_cmd("mp3split", 6)
906 mp3split(argv[4], argv[5], atoi(argv[2]), atoi(argv[3]));
907 end_cmd()
908
909 begin_cmd("rrrchars", 6)
910 rrrchars(argv[2], argv[3], atoi(argv[4]), atoi(argv[5]));
911 end_cmd()
912
913 begin_cmd("chstr", 6)
914 chstr(argv[2], argv[3], argv[4], argv[5]);
915 end_cmd()
916
917 begin_cmd("chchars", 6)
918 chchars(argv[2], argv[3], argv[4], argv[5]);
919 end_cmd()
920
921 begin_cmd("chchar", 6)
922 chchar(argv[2], argv[3], argv[4][0], argv[5][0]);
923 end_cmd()
924
925 begin_cmd("filechop", 6)
926 filechop( (strtol(argv[2], NULL, 0)), argv[3], argv[4], argv[5]);
927 end_cmd()
928
929 begin_cmd("putlines", 6)
930 putlines(argv[2], argv[3], argv[4], argv[5]);
931 end_cmd()
932
933 begin_cmd("copyoffs", 6)
934 copyoffs(argv[2], strtoul(argv[3], NULL, 0), strtoul(argv[4], NULL, 0), argv[5]);
935 end_cmd()
936
937 begin_cmd("istrael", 6)
938 istrael(argv[2], atoi(argv[3]), argv[4], argv[5]);
939 end_cmd()
940
941 begin_cmd("addline", 6)
942 addline(argv[2], argv[3], argv[4], strtoul(argv[5], NULL, 0));
943 end_cmd()
944
945 begin_cmd("replacel", 6)
946 replacel(argv[2], argv[3], argv[4], strtoul(argv[5], NULL, 0));
947 end_cmd()
948
949
950 begin_cmd("bremline", 5)
951 bremline(argv[2], argv[3], argv[4]);
952 end_cmd()
953
954 begin_cmd("eremline", 5)
955 eremline(argv[2], argv[3], argv[4]);
956 end_cmd()
957
958 begin_cmd("remline", 5)
959 remline(argv[2], argv[3], argv[4]);
960 end_cmd()
961
962 begin_cmd("skipstr", 5)
963 skipstr(argv[2], argv[3], argv[4]);
964 end_cmd()
965
966 begin_cmd("makarray", 5)
967 makarray(argv[2], argv[3], argv[4]);
968 end_cmd()
969
970 begin_cmd("streline", 5)
971 streline(argv[2], argv[3], argv[4]);
972 end_cmd()
973
974 begin_cmd("strbline", 5)
975 strbline(argv[2], argv[3], argv[4]);
976 end_cmd()
977
978 begin_cmd("swapfeb", 5)
979 swapfeb(argv[2], argv[3], argv[4]);
980 end_cmd()
981
982 begin_cmd("filbreed", 5)
983 filbreed(argv[2], argv[3], argv[4]);
984 end_cmd()
985
986 begin_cmd("skipchar", 5)
987 skipchar(argv[2], argv[3], argv[4]);
988 end_cmd()
989
990 begin_cmd("onlychar", 5)
991 onlychar(argv[2], argv[3], argv[4]);
992 end_cmd()
993
994 begin_cmd("repchar", 5)
995 repeat = (unsigned int) atoi(argv[4]);
996 repchar(argv[2], argv[3], repeat);
997 end_cmd()
998
999 begin_cmd("linesnip", 5)
1000 repeat = (unsigned int) atoi(argv[2]);
1001 linesnip(repeat, argv[3], argv[4]);
1002 end_cmd()
1003
1004 begin_cmd("charwarp", 5)
1005 repeat = (unsigned int) atoi(argv[4]);
1006 charwrap(repeat, argv[2], argv[3]);
1007 end_cmd()
1008
1009 begin_cmd("repcharp", 5)
1010 repeat = (unsigned int) atoi(argv[4]);
1011 repcharp(argv[2], argv[3], repeat);
1012 end_cmd()
1013
1014 begin_cmd("coffset", 5)
1015 coffset(argv[2], strtoul(argv[3], NULL, 0), strtoul(argv[4], NULL, 0));
1016 end_cmd()
1017
1018 begin_cmd("dumpoffs", 5)
1019 dumpoffs(argv[2], strtoul(argv[3], NULL, 0), strtoul(argv[4], NULL, 0));
1020 end_cmd()
1021
1022 begin_cmd("bin2c", 5)
1023 bin2c(argv[2], argv[3], argv[4]);
1024 end_cmd()
1025
1026 begin_cmd("filejoin", 5)
1027 filejoin(argv[2], argv[3], argv[4]);
1028 end_cmd()
1029
1030 begin_cmd("mkpatch", 5)
1031 mkpatch(argv[2], argv[3], argv[4]);
1032 end_cmd()
1033
1034 begin_cmd("charfile", 5)
1035 repeat = (unsigned int) atoi(argv[3]);
1036 charfile(argv[2], repeat, argv[4][0]);
1037 end_cmd()
1038
1039 begin_cmd("strfile", 5)
1040 repeat = (unsigned int) atoi(argv[3]);
1041 strfile(argv[2], repeat, argv[4]);
1042 end_cmd()
1043
1044 begin_cmd("tabspace", 5)
1045 repeat = atoi(argv[2]);
1046 tabspace(repeat, argv[3], argv[4]);
1047 end_cmd()
1048
1049 begin_cmd("charaftr", 5)
1050 charaftr(argv[2], argv[3], argv[4][0]);
1051 end_cmd()
1052
1053 begin_cmd("charbefr", 5)
1054 charbefr(argv[2], argv[3], argv[4][0]);
1055 end_cmd()
1056
1057 begin_cmd("strachar", 5)
1058 strachar(argv[2], argv[3], argv[4]);
1059 end_cmd()
1060
1061 begin_cmd("strbchar", 5)
1062 strbchar(argv[2], argv[3], argv[4]);
1063 end_cmd()
1064
1065 begin_cmd("rstrach", 5)
1066 rstrach(atoi(argv[2]), argv[3], argv[4]);
1067 end_cmd()
1068
1069 begin_cmd("rstrbch", 5)
1070 rstrbch(atoi(argv[2]), argv[3], argv[4]);
1071 end_cmd()
1072
1073 begin_cmd("cpfroml", 5)
1074 cpfroml(atoi(argv[2]), argv[3], argv[4]);
1075 end_cmd()
1076
1077 begin_cmd("cptiline", 5)
1078 cptiline(atoi(argv[2]), argv[3], argv[4]);
1079 end_cmd()
1080
1081 begin_cmd("n2ch", 5)
1082 n2ch(argv[2][0], argv[3], argv[4]);
1083 end_cmd()
1084
1085 begin_cmd("n2str", 5)
1086 n2str(argv[2], argv[3], argv[4]);
1087 end_cmd()
1088
1089 begin_cmd("weakrypt", 5)
1090 weakrypt(argv[2], argv[3], argv[4]);
1091 end_cmd()
1092
1093 begin_cmd("sp2ce2sp", 5)
1094 sp2ce2sp(argv[2][0], argv[3], argv[4]);
1095 end_cmd()
1096
1097 begin_cmd("istreml", 5)
1098 istreml(argv[2], argv[3], argv[4]);
1099 end_cmd()
1100
1101 begin_cmd("removel", 5)
1102 removel(argv[2], argv[3], strtoul(argv[4], NULL, 0));
1103 end_cmd()
1104
1105
1106
1107
1108 begin_cmd("printftx", 4)
1109 printftx(argv[2], argv[3]);
1110 end_cmd()
1111
1112 begin_cmd("lensorts", 4)
1113 lensorts(argv[2], argv[3]);
1114 end_cmd()
1115
1116 begin_cmd("lensortl", 4)
1117 lensortl(argv[2], argv[3]);
1118 end_cmd()
1119
1120 begin_cmd("find", 4)
1121 find(argv[2], argv[3]);
1122 end_cmd()
1123
1124 begin_cmd("findi", 4)
1125 findi(argv[2], argv[3]);
1126 end_cmd()
1127
1128 begin_cmd("cfind", 4)
1129 cfind(argv[2], argv[3]);
1130 end_cmd()
1131
1132 begin_cmd("cfindi", 4)
1133 cfindi(argv[2], argv[3]);
1134 end_cmd()
1135
1136 begin_cmd("showline", 4)
1137 showline(argv[2], atoi(argv[3]));
1138 end_cmd()
1139
1140 begin_cmd("cat_tail", 4)
1141 cat_tail(argv[2], atoi(argv[3]));
1142 end_cmd()
1143
1144 begin_cmd("cat_head", 4)
1145 cat_head(argv[2], atoi(argv[3]));
1146 end_cmd()
1147
1148 begin_cmd("getlinks", 4)
1149 getlinks(argv[2], argv[3]);
1150 end_cmd()
1151
1152 begin_cmd("f2upper", 4)
1153 f2upper(argv[2], argv[3]);
1154 end_cmd()
1155
1156 begin_cmd("f2lower", 4)
1157 f2lower(argv[2], argv[3]);
1158 end_cmd()
1159
1160 begin_cmd("fswpcase", 4)
1161 fswpcase(argv[2], argv[3]);
1162 end_cmd()
1163
1164 begin_cmd("downlist", 4)
1165 downlist(argv[2], argv[3]);
1166 end_cmd()
1167
1168 begin_cmd("hilist", 4)
1169 hilist(argv[2], argv[3]);
1170 end_cmd()
1171
1172 begin_cmd("rtcafter", 4)
1173 rtcafter(argv[2], argv[3]);
1174 end_cmd()
1175
1176 begin_cmd("rtcbefor", 4)
1177 rtcbefor(argv[2], argv[3]);
1178 end_cmd()
1179
1180 begin_cmd("rbcafter", 4)
1181 rbcafter(argv[2], argv[3]);
1182 end_cmd()
1183
1184 begin_cmd("rbcbefor", 4)
1185 rbcbefor(argv[2], argv[3]);
1186 end_cmd()
1187
1188 begin_cmd("numlines", 4)
1189 numlines(argv[2], argv[3]);
1190 end_cmd()
1191
1192 begin_cmd("file2dec", 4)
1193 file2dec(argv[2], argv[3]);
1194 end_cmd()
1195
1196 begin_cmd("file2hex", 4)
1197 file2hex(argv[2], argv[3]);
1198 end_cmd()
1199
1200 begin_cmd("file2bin", 4)
1201 file2bin(argv[2], argv[3]);
1202 end_cmd()
1203
1204 begin_cmd("wordline", 4)
1205 wordline(argv[2], argv[3]);
1206 end_cmd()
1207
1208 begin_cmd("8bit256", 4)
1209 repeat = (unsigned int) atoi(argv[3]);
1210 _8bit256(argv[2], repeat);
1211 end_cmd()
1212
1213 begin_cmd("eng2arab", 4)
1214 eng2arab(argv[2], argv[3]);
1215 end_cmd()
1216
1217 begin_cmd("arab2eng", 4)
1218 arab2eng(argv[2], argv[3]);
1219 end_cmd()
1220
1221 begin_cmd("e2ahtml", 4)
1222 e2ahtml(argv[2], argv[3]);
1223 end_cmd()
1224
1225 begin_cmd("freverse", 4)
1226 freverse(argv[2], argv[3]);
1227 end_cmd()
1228
1229 begin_cmd("repcat", 4)
1230 repeat = (unsigned int) atoi(argv[3]);
1231 repcat(argv[2], repeat);
1232 end_cmd()
1233
1234 begin_cmd("repcatpp", 4)
1235 repeat = (unsigned int) atoi(argv[3]);
1236 repcatpp(argv[2], repeat);
1237 end_cmd()
1238
1239 begin_cmd("copyfile", 4)
1240 copyfile(argv[2], argv[3]);
1241 end_cmd()
1242
1243 begin_cmd("qpatch", 4)
1244 qpatch(argv[2], argv[3]);
1245 end_cmd()
1246
1247 begin_cmd("flipcopy", 4)
1248 flipcopy(argv[2], argv[3]);
1249 end_cmd()
1250
1251 begin_cmd("fillfile", 4)
1252 fillfile(argv[2], argv[3][0]);
1253 end_cmd()
1254
1255 begin_cmd("bin2text", 4)
1256 bin2text(argv[2], argv[3]);
1257 end_cmd()
1258
1259 begin_cmd("bin2hexi", 4)
1260 bin2hexi(argv[2], argv[3]);
1261 end_cmd()
1262
1263 begin_cmd("rndbfile", 4)
1264 rndbfile(argv[2], strtoul(argv[3], NULL, 0));
1265 end_cmd()
1266
1267 begin_cmd("rndtfile", 4)
1268 rndtfile(argv[2], strtoul(argv[3], NULL, 0));
1269 end_cmd()
1270
1271 begin_cmd("skipcat", 4)
1272 skipcat(argv[2], argv[3]);
1273 end_cmd()
1274
1275 begin_cmd("onlycat", 4)
1276 onlycat(argv[2], argv[3]);
1277 end_cmd()
1278
1279 begin_cmd("bigascif", 4)
1280 bigascif(argv[2], argv[3]);
1281 end_cmd()
1282
1283 begin_cmd("leetfile", 4)
1284 leetfile(argv[2], argv[3]);
1285 end_cmd()
1286
1287 begin_cmd("asc2ebc", 4)
1288 asc2ebc(argv[2], argv[3]);
1289 end_cmd()
1290
1291 begin_cmd("ebc2asc", 4)
1292 ebc2asc(argv[2], argv[3]);
1293 end_cmd()
1294
1295 begin_cmd("unix2dos", 4)
1296 unix2dos(argv[2], argv[3]);
1297 end_cmd()
1298
1299 begin_cmd("dos2unix", 4)
1300 dos2unix(argv[2], argv[3]);
1301 end_cmd()
1302
1303 begin_cmd("uuencode", 4)
1304 uuencode(argv[2], argv[3]);
1305 end_cmd()
1306
1307 begin_cmd("uudecode", 4)
1308 uudecode(argv[2], argv[3]);
1309 end_cmd()
1310
1311 begin_cmd("wordwrap", 4)
1312 wordwrap(argv[2], argv[3]);
1313 end_cmd()
1314
1315 begin_cmd("compare", 4)
1316 compare(argv[2], argv[3]);
1317 end_cmd()
1318
1319 begin_cmd("ccompare", 4)
1320 ccompare(argv[2], argv[3]);
1321 end_cmd()
1322
1323 begin_cmd("hmakerf", 4)
1324 hmakerf(argv[2], argv[3]);
1325 end_cmd()
1326
1327 begin_cmd("qcrypt", 4)
1328 qcrypt(argv[2], argv[3]);
1329 end_cmd()
1330
1331 begin_cmd("revlines", 4)
1332 revlines(argv[2], argv[3]);
1333 end_cmd()
1334
1335 begin_cmd("html2txt", 4)
1336 html2txt(argv[2], argv[3]);
1337 end_cmd()
1338
1339 begin_cmd("txt2html", 4)
1340 txt2html(argv[2], argv[3]);
1341 end_cmd()
1342
1343 begin_cmd("htmlfast", 4)
1344 htmlfast(argv[2], argv[3]);
1345 end_cmd()
1346
1347 begin_cmd("onlalnum", 4)
1348 onlalnum(argv[2], argv[3]);
1349 end_cmd()
1350
1351 begin_cmd("onlalpha", 4)
1352 onlalpha(argv[2], argv[3]);
1353 end_cmd()
1354
1355 begin_cmd("onlcntrl", 4)
1356 onlcntrl(argv[2], argv[3]);
1357 end_cmd()
1358
1359 begin_cmd("onldigit", 4)
1360 onldigit(argv[2], argv[3]);
1361 end_cmd()
1362
1363 begin_cmd("onlgraph", 4)
1364 onlgraph(argv[2], argv[3]);
1365 end_cmd()
1366
1367 begin_cmd("onllower", 4)
1368 onllower(argv[2], argv[3]);
1369 end_cmd()
1370
1371 begin_cmd("onlprint", 4)
1372 onlprint(argv[2], argv[3]);
1373 end_cmd()
1374
1375 begin_cmd("onlpunct", 4)
1376 onlpunct(argv[2], argv[3]);
1377 end_cmd()
1378
1379 begin_cmd("onlspace", 4)
1380 onlspace(argv[2], argv[3]);
1381 end_cmd()
1382
1383 begin_cmd("onlupper", 4)
1384 onlupper(argv[2], argv[3]);
1385 end_cmd()
1386
1387 begin_cmd("onlxdigt", 4)
1388 onlxdigt(argv[2], argv[3]);
1389 end_cmd()
1390
1391 begin_cmd("skpalnum", 4)
1392 skpalnum(argv[2], argv[3]);
1393 end_cmd()
1394
1395 begin_cmd("skpalpha", 4)
1396 skpalpha(argv[2], argv[3]);
1397 end_cmd()
1398
1399 begin_cmd("skpcntrl", 4)
1400 skpcntrl(argv[2], argv[3]);
1401 end_cmd()
1402
1403 begin_cmd("skpdigit", 4)
1404 skpdigit(argv[2], argv[3]);
1405 end_cmd()
1406
1407 begin_cmd("skpgraph", 4)
1408 skpgraph(argv[2], argv[3]);
1409 end_cmd()
1410
1411 begin_cmd("skplower", 4)
1412 skplower(argv[2], argv[3]);
1413 end_cmd()
1414
1415 begin_cmd("skpprint", 4)
1416 skpprint(argv[2], argv[3]);
1417 end_cmd()
1418
1419 begin_cmd("skppunct", 4)
1420 skppunct(argv[2], argv[3]);
1421 end_cmd()
1422
1423 begin_cmd("skpspace", 4)
1424 skpspace(argv[2], argv[3]);
1425 end_cmd()
1426
1427 begin_cmd("skpupper", 4)
1428 skpupper(argv[2], argv[3]);
1429 end_cmd()
1430
1431 begin_cmd("skpxdigt", 4)
1432 skpxdigt(argv[2], argv[3]);
1433 end_cmd()
1434
1435 begin_cmd("ftothe", 4)
1436 ftothe(argv[2], argv[3]);
1437 end_cmd()
1438
1439 begin_cmd("blanka", 4)
1440 blanka(argv[2], argv[3]);
1441 end_cmd()
1442
1443 begin_cmd("unblanka", 4)
1444 unblanka(argv[2], argv[3]);
1445 end_cmd()
1446
1447 begin_cmd("najirle", 4)
1448 najirle(argv[2], argv[3]);
1449 end_cmd()
1450
1451 begin_cmd("unajirle", 4)
1452 unajirle(argv[2], argv[3]);
1453 end_cmd()
1454
1455
1456 begin_cmd("gplus", 4)
1457 a = atoi(argv[2]);
1458 b = atoi(argv[3]);
1459 gplus(a, b);
1460 end_cmd()
1461
1462
1463 begin_cmd("gminus", 4)
1464 a = atoi(argv[2]);
1465 b = atoi(argv[3]);
1466 gminus(a, b);
1467 end_cmd()
1468
1469
1470 begin_cmd("gtimes", 4)
1471 a = atoi(argv[2]);
1472 b = atoi(argv[3]);
1473 gtimes(a, b);
1474 end_cmd()
1475
1476
1477 begin_cmd("gdivide", 4)
1478 gdivide_a = atof(argv[2]);
1479 gdivide_b = atof(argv[3]);
1480 gdivide(gdivide_a, gdivide_b);
1481 end_cmd()
1482
1483
1484 begin_cmd("bytsplit", 4)
1485 bytsplit(argv[2], atol(argv[3]));
1486 end_cmd()
1487
1488 begin_cmd("kbsplit", 4)
1489 kbsplit(argv[2], atol(argv[3]));
1490 end_cmd()
1491
1492 begin_cmd("mbsplit", 4)
1493 mbsplit(argv[2], atol(argv[3]));
1494 end_cmd()
1495
1496 begin_cmd("gbsplit", 4)
1497 gbsplit(argv[2], atol(argv[3]));
1498 end_cmd()
1499
1500 begin_cmd("mjoin", 4)
1501 mjoin(argv[2], argv[3]);
1502 end_cmd()
1503
1504
1505 begin_cmd("listdigt", 4)
1506 listdigt(atoi(argv[2]), argv[3]);
1507 end_cmd()
1508
1509 begin_cmd("listlowr", 4)
1510 listlowr(atoi(argv[2]), argv[3]);
1511 end_cmd()
1512
1513 begin_cmd("listprnt", 4)
1514 listprnt(atoi(argv[2]), argv[3]);
1515 end_cmd()
1516
1517 begin_cmd("listuppr", 4)
1518 listuppr(atoi(argv[2]), argv[3]);
1519 end_cmd()
1520
1521 begin_cmd("charsort", 4)
1522 charsort(argv[2], argv[3]);
1523 end_cmd()
1524
1525 begin_cmd("sp2re2sp", 4)
1526 sp2re2sp(argv[2], argv[3]);
1527 end_cmd()
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537 begin_cmd("lcvfiles", 3)
1538 lcvfiles(argv[2]);
1539 end_cmd()
1540
1541 begin_cmd("rcvfiles", 3)
1542 rcvfiles(argv[2]);
1543 end_cmd()
1544
1545
1546 begin_cmd("mp3tagnf", 3)
1547 mp3info(argv[2]);
1548 end_cmd()
1549
1550 begin_cmd("catrandl", 3)
1551 catrandl(argv[2]);
1552 end_cmd()
1553
1554 begin_cmd("leetstr", 3)
1555 printf("\n\n");
1556 leetstr(argv[2]);
1557 printf("\n\n");
1558 end_cmd()
1559
1560 begin_cmd("lcharvar", 3)
1561 lcharvar(argv[2]);
1562 end_cmd()
1563
1564 begin_cmd("rcharvar", 3)
1565 rcharvar(argv[2]);
1566 end_cmd()
1567
1568 begin_cmd("hexicat", 3)
1569 hexicat(argv[2]);
1570 end_cmd()
1571
1572 begin_cmd("rndffill", 3)
1573 rndffill(argv[2]);
1574 end_cmd()
1575
1576 begin_cmd("zerokill", 3)
1577 zerokill(argv[2]);
1578 end_cmd()
1579
1580 begin_cmd("randkill", 3)
1581 randkill(argv[2]);
1582 end_cmd()
1583
1584 begin_cmd("najisum", 3)
1585 najisum(argv[2]);
1586 end_cmd()
1587
1588
1589 begin_cmd("rndbsout", 3)
1590 rndbsout(strtoul(argv[2], NULL, 0));
1591 end_cmd()
1592
1593 begin_cmd("rndtsout", 3)
1594 rndtsout(strtoul(argv[2], NULL, 0));
1595 end_cmd()
1596
1597 begin_cmd("patch", 3)
1598 patch(argv[2]);
1599 end_cmd()
1600
1601 begin_cmd("revcat", 3)
1602 revcat(argv[2]);
1603 end_cmd()
1604
1605 begin_cmd("copyself", 3)
1606 copyfile(argv[0], argv[2]);
1607 end_cmd()
1608
1609 begin_cmd("bigascii", 3)
1610 bigascii(argv[2]);
1611 end_cmd()
1612
1613 begin_cmd("hmaker", 3)
1614 hmaker(argv[2]);
1615 end_cmd()
1616
1617 begin_cmd("wrdcount", 3)
1618 printf("\n\n%i\n\n", wrdcount(argv[2]));
1619 end_cmd()
1620
1621 begin_cmd("addim", 3)
1622 addim(atoi(argv[2]));
1623 end_cmd()
1624
1625 begin_cmd("allfiles", 3)
1626
1627 fprintf(stderr,
1628 "\n"
1629 "NOTE: On most systems you can stop with Ctrl+C\n"
1630 "WARNING: This will make a lot of files.\n"
1631 "Are you sure? type YES to continue\n"
1632 "or anything else to quit.\n"
1633 );
1634 safegets(are_you_sure, 80);
1635
1636 if (!strcmp(are_you_sure, "YES"))
1637 allfiles(atol(argv[2]));
1638 end_cmd();
1639
1640 begin_cmd("tothe", 3)
1641 tothe(argv[2]);
1642 end_cmd()
1643
1644 begin_cmd("vowelwrd", 3)
1645 vowelwrd(argv[2]);
1646 end_cmd()
1647
1648 begin_cmd("gigabyte", 3)
1649 gigabyte(strtoul(argv[2], NULL, 0));
1650 end_cmd()
1651
1652 begin_cmd("sort", 3)
1653 sort(argv[2]);
1654 end_cmd()
1655
1656 begin_cmd("sortlast", 3)
1657 sortlast(argv[2]);
1658 end_cmd()
1659
1660 begin_cmd("lineback", 3)
1661 lineback(argv[2]);
1662 end_cmd()
1663
1664 begin_cmd("longline", 3)
1665 longline(argv[2]);
1666 end_cmd()
1667
1668 begin_cmd("howline", 3)
1669 howline(argv[2]);
1670 end_cmd()
1671
1672 begin_cmd("rndlines", 3)
1673 rndlines(argv[2]);
1674 end_cmd()
1675
1676 begin_cmd("spyramid", 3)
1677 spyramid(argv[2]);
1678 end_cmd()
1679
1680
1681 } /* if (argc >= 2) */
1682
1683 return 0;
1684 }
1685