1 /* ---------- */
2 /* najifrmt.c */
3 /* ---------- */
4
5 /* naji file format functions */
6
7 /* this .c file is a part */
8 /* of libnaji version 0.6.4 */
9
10 /* libnaji is based on */
11 /* the original najitool */
12
13 /* both najitool and libnaji */
14 /* are public domain and are */
15 /* made by the same author */
16 /* please read license.txt */
17
18 /* made by NECDET COKYAZICI */
19
20 /* charaftr and charbefr */
21 /* made by SELCUK OZDOGAN */
22
23 /* strbline and streline */
24 /* made by POLIKARP */
25
26 /* bremline, eremline */
27 /* made by SACHIN MANE */
28
29
30 #include "libnaji.h"
31
32
charwrap(int w,char * namein,char * nameout)33 void charwrap(int w, char *namein, char *nameout)
34 {
35 int a;
36 int b;
37
38 najin(namein);
39 najout(nameout);
40
41
42 b=0;
43
44 loop
45 {
46
47 a = fgetc(naji_input);
48 if (a == EOF)
49 endloop;
50
51 b++;
52
53 if (b == w || a == '\n')
54 {
55 fputc('\n', naji_output);
56 b=0;
57 }
58
59 fputc(a, naji_output);
60
61 }
62
63
64
65
66 najinclose();
67 najoutclose();
68 }
69
70
71
wordwrap(char * namein,char * nameout)72 void wordwrap(char *namein, char *nameout)
73 {
74 int i;
75 int a;
76 int b;
77
78 najin(namein);
79 najout(nameout);
80
81
82 b=0;
83
84 loop
85 {
86
87 a = fgetc(naji_input);
88 if (a == EOF)
89 endloop;
90
91 b++;
92
93 if (a == '\n') b=0;
94
95
96 for (i=0; i<14; i++)
97 if ( (b == 65+i) &&
98
99 ( a == ' ' ||
100 a == '-' ||
101 a == '+' ||
102 a == '_' ||
103 a == '/' ||
104 a == '\\'
105
106 )
107 )
108
109 {
110 fputc('\n', naji_output);
111 b=0;
112 break;
113 }
114
115 fputc(a, naji_output);
116
117 }
118
119
120
121
122 najinclose();
123 najoutclose();
124 }
125
126
numlines(char * namein,char * nameout)127 void numlines(char *namein, char *nameout)
128 {
129 int a;
130 unsigned long line = 1;
131
132
133 najin(namein);
134 najout(nameout);
135
136
137 fprintf(naji_output, "%lu ", line);
138
139
140 loop
141 {
142
143 a = fgetc(naji_input);
144
145 if (a == EOF)
146 endloop;
147
148 if (a == '\n')
149 {
150 line++;
151 fprintf(naji_output, "\n%lu ", line);
152 }
153 else
154 fputc(a, naji_output);
155
156 }
157
158
159 najinclose();
160 najoutclose();
161 }
162
163
164
charaftr(char * namein,char * nameout,char ch)165 void charaftr(char *namein, char *nameout, char ch)
166 {
167 int a;
168
169 najin(namein);
170 najout(nameout);
171
172 loop
173 {
174 a = fgetc(naji_input);
175
176 if (a == EOF)
177 endloop;
178
179 fputc(a, naji_output);
180 fputc(ch, naji_output);
181 }
182
183 najinclose();
184 najoutclose();
185 }
186
187
charbefr(char * namein,char * nameout,char ch)188 void charbefr(char *namein, char *nameout, char ch)
189 {
190 int a;
191
192 najin(namein);
193 najout(nameout);
194
195 loop
196 {
197 a = fgetc(naji_input);
198
199 if (a == EOF)
200 endloop;
201
202 fputc(ch, naji_output);
203 fputc(a, naji_output);
204 }
205
206 najinclose();
207 najoutclose();
208 }
209
210
211
212
rbcafter(char * namein,char * nameout)213 void rbcafter(char *namein, char *nameout)
214 {
215 int a;
216
217 rand_init();
218
219 najin(namein);
220 najout(nameout);
221
222 loop
223 {
224 a = fgetc(naji_input);
225
226 if (a == EOF)
227 endloop;
228
229 fputc(a, naji_output);
230 fputc(rand() % 255, naji_output);
231 }
232
233 najinclose();
234 najoutclose();
235 }
236
237
rbcbefor(char * namein,char * nameout)238 void rbcbefor(char *namein, char *nameout)
239 {
240 int a;
241
242 rand_init();
243
244 najin(namein);
245 najout(nameout);
246
247 loop
248 {
249 a = fgetc(naji_input);
250
251 if (a == EOF)
252 endloop;
253
254 fputc(rand() % 255, naji_output);
255 fputc(a, naji_output);
256 }
257
258 najinclose();
259 najoutclose();
260 }
261
262
263
264
rtcafter(char * namein,char * nameout)265 void rtcafter(char *namein, char *nameout)
266 {
267 int a;
268
269 rand_init();
270
271 najin(namein);
272 najout(nameout);
273
274 loop
275 {
276 a = fgetc(naji_input);
277
278 if (a == EOF)
279 endloop;
280
281 fputc(a, naji_output);
282 fputc( ( (rand() % 95)+' ' ), naji_output);
283 }
284
285 najinclose();
286 najoutclose();
287 }
288
289
rtcbefor(char * namein,char * nameout)290 void rtcbefor(char *namein, char *nameout)
291 {
292 int a;
293
294 rand_init();
295
296 najin(namein);
297 najout(nameout);
298
299 loop
300 {
301 a = fgetc(naji_input);
302
303 if (a == EOF)
304 endloop;
305
306 fputc( ( (rand() % 95)+' ' ), naji_output);
307 fputc(a, naji_output);
308 }
309
310 najinclose();
311 najoutclose();
312 }
313
314
315
strbline(char * namein,char * nameout,char * str)316 void strbline(char *namein, char *nameout, char *str)
317 {
318 char buffer[4096];
319
320 najin(namein);
321 najout(nameout);
322
323
324 *buffer = '\0';
325
326 while(fgets(buffer, sizeof(buffer), naji_input))
327 {
328 fprintf(naji_output, "%s%s", str, buffer);
329 *buffer = '\0';
330 }
331
332
333 najinclose();
334 najoutclose();
335 }
336
337
streline(char * namein,char * nameout,char * str)338 void streline(char *namein, char *nameout, char *str)
339 {
340 char buffer[4096];
341 char lastchar=0;
342
343 najin(namein);
344 najout(nameout);
345
346
347 *buffer = '\0';
348
349 while(fgets(buffer, sizeof(buffer), naji_input))
350 {
351 lastchar = buffer[strlen(buffer)-1];
352 buffer[strlen(buffer)-1] ='\0';
353
354 fprintf(naji_output, "%s%s%c", buffer, str, lastchar);
355 *buffer = '\0';
356 }
357
358
359 najinclose();
360 najoutclose();
361 }
362
363
swapfeb(char * namein,char * namein2,char * nameout)364 void swapfeb(char *namein, char *namein2, char *nameout)
365 {
366 int a;
367 int b;
368
369 najin(namein);
370 najin2(namein2);
371 najout(nameout);
372
373
374 while(1)
375 {
376
377 a = fgetc(naji_input);
378 fgetc(naji_input2);
379 b = fgetc(naji_input2);
380 fgetc(naji_input);
381
382
383 if (a == EOF)
384 break;
385
386 if (b == EOF)
387 break;
388
389 fputc(a, naji_output);
390 fputc(b, naji_output);
391
392 }
393
394
395 najinclose();
396 najin2close();
397 najoutclose();
398 }
399
400
filbreed(char * namein,char * namein2,char * nameout)401 void filbreed(char *namein, char *namein2, char *nameout)
402 {
403 int a;
404 int b;
405
406 najin(namein);
407 najin2(namein2);
408 najout(nameout);
409
410
411 while(1)
412 {
413
414 a = fgetc(naji_input);
415 b = fgetc(naji_input2);
416
417
418 if (a == EOF)
419 break;
420
421 if (b == EOF)
422 break;
423
424 fputc(a, naji_output);
425 fputc(b, naji_output);
426
427 }
428
429
430 najinclose();
431 najin2close();
432 najoutclose();
433 }
434
435
436
wordline(char * namein,char * nameout)437 void wordline(char *namein, char *nameout)
438 {
439 int a;
440
441 najin(namein);
442 najout(nameout);
443
444
445 loop
446 {
447 a = fgetc(naji_input);
448
449 if (a == EOF)
450 endloop;
451
452 if (a == ' ')
453 a = '\n';
454
455 fputc(a, naji_output);
456 }
457
458
459 najinclose();
460 najoutclose();
461 }
462
463
464
bremline(char * str,char * namein,char * nameout)465 void bremline(char *str, char *namein, char *nameout)
466 {
467 char *tempbuf = NULL;
468
469 int len;
470 int a = 0;
471 int i = 0;
472 int cnt = 0;
473 int pos = 0;
474
475 len = strlen(str);
476
477 tempbuf = (char *) calloc(len + 1, sizeof (char));
478
479 if (tempbuf == NULL)
480 {
481 fprintf(stderr, "\n\nError, cannot allocate memory");
482 perror(" "); fprintf(stderr, "\n\n");
483 exit(2);
484 }
485
486 najin(namein);
487 najout(nameout);
488
489 while (1)
490 {
491
492 a = fgetc(naji_input);
493
494 if (a == EOF)
495 {
496 for (i=0; i<cnt ; i++)
497 fputc(tempbuf[i], naji_output);
498
499 fputc('\n', naji_output);
500 break;
501 }
502
503 if (a == '\n')
504 {
505 /* Print the temp buffer */
506 for (i=0; i<cnt; i++)
507 fputc(tempbuf[i], naji_output);
508
509 fputc('\n', naji_output);
510
511 pos = 0;
512 cnt = 0;
513
514 continue;
515 }
516
517 tempbuf[pos % len] = a;
518 pos++;
519 cnt++;
520
521 if (cnt == len)
522 {
523
524 if (!isequal(str, tempbuf, len, pos % len))
525 {
526
527 for (i=0; i<cnt; i++)
528 fputc(tempbuf[i], naji_output);
529
530 /* Print remaing line */
531 while (1)
532 {
533 a = fgetc(naji_input);
534
535 if (a == EOF || a == '\n')
536 break;
537
538 fputc(a, naji_output);
539 }
540
541 fputc('\n', naji_output);
542 }
543
544
545 else
546 {
547
548 /* Skip this line */
549 while (1)
550 {
551
552 a = fgetc(naji_input);
553
554 if (a == EOF || a == '\n')
555 break;
556
557
558 }
559
560
561 }
562
563
564 pos = 0;
565 cnt = 0;
566
567 }
568
569
570
571 }
572
573
574 najinclose();
575 najoutclose();
576 }
577
578
579
580 /*
581 Memory will be allocated for the line buffer as a block size of 100.
582 The number 100 is taken because normally the line size is 80 characters.
583 In best case scenario this function will not have to reallocate memory
584 for the line. In other cases this function keeps on increasing
585 the buffer size by BLOCK_SIZE as and when required.
586 */
587
eremline(char * str,char * namein,char * nameout)588 void eremline(char *str, char *namein, char *nameout)
589 {
590 const int BLOCK_SIZE = 100;
591 char *line_buf = NULL;
592
593 int cur_buf_size = 0;
594
595 int a;
596 int x;
597 int i = 0;
598 int j = 0;
599 int len = 0;
600 int buf_len;
601
602
603
604 len = strlen(str);
605
606 /*
607 Allocate a block of memory for the line buffer.
608 This buffer can grow as and when required.
609 */
610
611 line_buf = (char *) calloc(BLOCK_SIZE, sizeof(char));
612
613 if (line_buf == NULL)
614 {
615 fprintf(stderr, "\n\nError, cannot allocate memory");
616 perror(" "); fprintf(stderr, "\n\n");
617 exit(2);
618 }
619
620 cur_buf_size = BLOCK_SIZE;
621
622 najin(namein);
623 najout(nameout);
624
625 while (1)
626 {
627 a = fgetc(naji_input);
628
629 if (a == '\r')
630 a = fgetc(naji_input);
631
632 if (a == '\n' || a == EOF)
633 {
634 line_buf =
635 addtolinebuf('\0', line_buf, i, &cur_buf_size, BLOCK_SIZE);
636
637 if (line_buf == NULL)
638 break;
639
640 if (strlen(line_buf) < len)
641 {
642 fputs(line_buf, naji_output);
643
644 if (a != EOF)
645 fputc('\n', naji_output);
646 }
647
648 else
649 {
650 buf_len = strlen(line_buf);
651
652 j = 0;
653
654 for (x = (buf_len - len); x < buf_len; x++)
655 {
656 if (line_buf[x] != str[j])
657 break;
658
659 j++;
660 }
661
662 if (x == buf_len) { }
663
664 else
665 {
666 fputs(line_buf, naji_output);
667
668 if (a != EOF)
669 fputc('\n', naji_output);
670 }
671 }
672
673 line_buf[0] = '\0';
674
675 i = 0;
676
677 if (a == EOF)
678 break;
679
680 else continue;
681 }
682
683 else
684 {
685 line_buf =
686 addtolinebuf(a, line_buf, i, &cur_buf_size, BLOCK_SIZE);
687
688 if (line_buf == NULL)
689 break;
690
691 i++;
692 }
693 }
694
695
696 free(line_buf);
697 najinclose();
698 najoutclose();
699 }
700
701
remline(char * str,char * namein,char * nameout)702 void remline(char *str, char *namein, char *nameout)
703 {
704 long pos;
705 int i;
706 int c;
707 char *line;
708
709
710 najin(namein);
711 najout(nameout);
712
713 pos = ftell(naji_input);
714 c = fgetc(naji_input);
715
716 /* line by line */
717 while (c != EOF)
718 {
719
720 for (i=0; (c != EOF) && (c != '\n') && (c != '\0'); i++)
721 c = fgetc(naji_input);
722
723 if (i > 0)
724 {
725 line = (char*) malloc (sizeof(char)*i+1);
726
727 fseek(naji_input, pos, SEEK_SET);
728 fgets(line, (i+1), naji_input);
729
730 if (strstr(line, str) == NULL)
731 fprintf(naji_output, "%s\n", line);
732
733 free(line);
734 }
735
736 pos = ftell(naji_input);
737 c = fgetc(naji_input);
738 }
739
740
741
742 najinclose();
743 najoutclose();
744 }
745
746
747
skpalnum(char * namein,char * nameout)748 void skpalnum(char *namein, char *nameout)
749 {
750 int skip = NAJI_FALSE;
751 int a=0;
752
753
754 najin(namein);
755 najout(nameout);
756
757
758 loop
759 {
760 a = fgetc(naji_input);
761
762 if (a == EOF)
763 endloop;
764
765 skip = NAJI_FALSE;
766
767 if (isalnum(a))
768 skip = NAJI_TRUE;
769
770 if (skip == NAJI_FALSE)
771 fputc(a, naji_output);
772 }
773
774 najinclose();
775 najoutclose();
776 }
777
778
skpalpha(char * namein,char * nameout)779 void skpalpha(char *namein, char *nameout)
780 {
781 int skip = NAJI_FALSE;
782 int a=0;
783
784
785 najin(namein);
786 najout(nameout);
787
788
789 loop
790 {
791 a = fgetc(naji_input);
792
793 if (a == EOF)
794 endloop;
795
796 skip = NAJI_FALSE;
797
798 if (isalpha(a))
799 skip = NAJI_TRUE;
800
801 if (skip == NAJI_FALSE)
802 fputc(a, naji_output);
803 }
804
805 najinclose();
806 najoutclose();
807 }
808
809
skpcntrl(char * namein,char * nameout)810 void skpcntrl(char *namein, char *nameout)
811 {
812 int skip = NAJI_FALSE;
813 int a=0;
814
815
816 najin(namein);
817 najout(nameout);
818
819
820 loop
821 {
822 a = fgetc(naji_input);
823
824 if (a == EOF)
825 endloop;
826
827 skip = NAJI_FALSE;
828
829 if (iscntrl(a))
830 skip = NAJI_TRUE;
831
832 if (skip == NAJI_FALSE)
833 fputc(a, naji_output);
834 }
835
836 najinclose();
837 najoutclose();
838 }
839
840
skpdigit(char * namein,char * nameout)841 void skpdigit(char *namein, char *nameout)
842 {
843 int skip = NAJI_FALSE;
844 int a=0;
845
846
847 najin(namein);
848 najout(nameout);
849
850
851 loop
852 {
853 a = fgetc(naji_input);
854
855 if (a == EOF)
856 endloop;
857
858 skip = NAJI_FALSE;
859
860 if (isdigit(a))
861 skip = NAJI_TRUE;
862
863 if (skip == NAJI_FALSE)
864 fputc(a, naji_output);
865 }
866
867 najinclose();
868 najoutclose();
869 }
870
871
skpgraph(char * namein,char * nameout)872 void skpgraph(char *namein, char *nameout)
873 {
874 int skip = NAJI_FALSE;
875 int a=0;
876
877
878 najin(namein);
879 najout(nameout);
880
881
882 loop
883 {
884 a = fgetc(naji_input);
885
886 if (a == EOF)
887 endloop;
888
889 skip = NAJI_FALSE;
890
891 if (isgraph(a))
892 skip = NAJI_TRUE;
893
894 if (skip == NAJI_FALSE)
895 fputc(a, naji_output);
896 }
897
898 najinclose();
899 najoutclose();
900 }
901
902
skplower(char * namein,char * nameout)903 void skplower(char *namein, char *nameout)
904 {
905 int skip = NAJI_FALSE;
906 int a=0;
907
908
909 najin(namein);
910 najout(nameout);
911
912
913 loop
914 {
915 a = fgetc(naji_input);
916
917 if (a == EOF)
918 endloop;
919
920 skip = NAJI_FALSE;
921
922 if (islower(a))
923 skip = NAJI_TRUE;
924
925 if (skip == NAJI_FALSE)
926 fputc(a, naji_output);
927 }
928
929 najinclose();
930 najoutclose();
931 }
932
933
skpprint(char * namein,char * nameout)934 void skpprint(char *namein, char *nameout)
935 {
936 int skip = NAJI_FALSE;
937 int a=0;
938
939
940 najin(namein);
941 najout(nameout);
942
943
944 loop
945 {
946 a = fgetc(naji_input);
947
948 if (a == EOF)
949 endloop;
950
951 skip = NAJI_FALSE;
952
953 if (isprint(a))
954 skip = NAJI_TRUE;
955
956 if (skip == NAJI_FALSE)
957 fputc(a, naji_output);
958 }
959
960 najinclose();
961 najoutclose();
962 }
963
964
skppunct(char * namein,char * nameout)965 void skppunct(char *namein, char *nameout)
966 {
967 int skip = NAJI_FALSE;
968 int a=0;
969
970
971 najin(namein);
972 najout(nameout);
973
974
975 loop
976 {
977 a = fgetc(naji_input);
978
979 if (a == EOF)
980 endloop;
981
982 skip = NAJI_FALSE;
983
984 if (ispunct(a))
985 skip = NAJI_TRUE;
986
987 if (skip == NAJI_FALSE)
988 fputc(a, naji_output);
989 }
990
991 najinclose();
992 najoutclose();
993 }
994
995
skpspace(char * namein,char * nameout)996 void skpspace(char *namein, char *nameout)
997 {
998 int skip = NAJI_FALSE;
999 int a=0;
1000
1001
1002 najin(namein);
1003 najout(nameout);
1004
1005
1006 loop
1007 {
1008 a = fgetc(naji_input);
1009
1010 if (a == EOF)
1011 endloop;
1012
1013 skip = NAJI_FALSE;
1014
1015 if (isspace(a))
1016 skip = NAJI_TRUE;
1017
1018 if (skip == NAJI_FALSE)
1019 fputc(a, naji_output);
1020 }
1021
1022 najinclose();
1023 najoutclose();
1024 }
1025
1026
skpupper(char * namein,char * nameout)1027 void skpupper(char *namein, char *nameout)
1028 {
1029 int skip = NAJI_FALSE;
1030 int a=0;
1031
1032
1033 najin(namein);
1034 najout(nameout);
1035
1036
1037 loop
1038 {
1039 a = fgetc(naji_input);
1040
1041 if (a == EOF)
1042 endloop;
1043
1044 skip = NAJI_FALSE;
1045
1046 if (isupper(a))
1047 skip = NAJI_TRUE;
1048
1049 if (skip == NAJI_FALSE)
1050 fputc(a, naji_output);
1051 }
1052
1053 najinclose();
1054 najoutclose();
1055 }
1056
1057
skpxdigt(char * namein,char * nameout)1058 void skpxdigt(char *namein, char *nameout)
1059 {
1060 int skip = NAJI_FALSE;
1061 int a=0;
1062
1063
1064 najin(namein);
1065 najout(nameout);
1066
1067
1068 loop
1069 {
1070 a = fgetc(naji_input);
1071
1072 if (a == EOF)
1073 endloop;
1074
1075 skip = NAJI_FALSE;
1076
1077 if (isxdigit(a))
1078 skip = NAJI_TRUE;
1079
1080 if (skip == NAJI_FALSE)
1081 fputc(a, naji_output);
1082 }
1083
1084 najinclose();
1085 najoutclose();
1086 }
1087
1088
onlalnum(char * namein,char * nameout)1089 void onlalnum(char *namein, char *nameout)
1090 {
1091 int show = NAJI_TRUE;
1092 int a=0;
1093
1094 najin(namein);
1095 najout(nameout);
1096
1097
1098 loop
1099 {
1100 a = fgetc(naji_input);
1101
1102 if (a == EOF)
1103 endloop;
1104
1105 show = NAJI_FALSE;
1106
1107 if (isalnum(a))
1108 show = NAJI_TRUE;
1109
1110 if (show == NAJI_TRUE)
1111 fputc(a, naji_output);
1112 }
1113
1114 najinclose();
1115 najoutclose();
1116 }
1117
1118
onlalpha(char * namein,char * nameout)1119 void onlalpha(char *namein, char *nameout)
1120 {
1121 int show = NAJI_TRUE;
1122 int a=0;
1123
1124 najin(namein);
1125 najout(nameout);
1126
1127
1128 loop
1129 {
1130 a = fgetc(naji_input);
1131
1132 if (a == EOF)
1133 endloop;
1134
1135 show = NAJI_FALSE;
1136
1137 if (isalpha(a))
1138 show = NAJI_TRUE;
1139
1140 if (show == NAJI_TRUE)
1141 fputc(a, naji_output);
1142 }
1143
1144 najinclose();
1145 najoutclose();
1146 }
1147
1148
onlcntrl(char * namein,char * nameout)1149 void onlcntrl(char *namein, char *nameout)
1150 {
1151 int show = NAJI_TRUE;
1152 int a=0;
1153
1154 najin(namein);
1155 najout(nameout);
1156
1157
1158 loop
1159 {
1160 a = fgetc(naji_input);
1161
1162 if (a == EOF)
1163 endloop;
1164
1165 show = NAJI_FALSE;
1166
1167 if (iscntrl(a))
1168 show = NAJI_TRUE;
1169
1170 if (show == NAJI_TRUE)
1171 fputc(a, naji_output);
1172 }
1173
1174 najinclose();
1175 najoutclose();
1176 }
1177
1178
onldigit(char * namein,char * nameout)1179 void onldigit(char *namein, char *nameout)
1180 {
1181 int show = NAJI_TRUE;
1182 int a=0;
1183
1184 najin(namein);
1185 najout(nameout);
1186
1187
1188 loop
1189 {
1190 a = fgetc(naji_input);
1191
1192 if (a == EOF)
1193 endloop;
1194
1195 show = NAJI_FALSE;
1196
1197 if (isdigit(a))
1198 show = NAJI_TRUE;
1199
1200 if (show == NAJI_TRUE)
1201 fputc(a, naji_output);
1202 }
1203
1204 najinclose();
1205 najoutclose();
1206 }
1207
1208
onlgraph(char * namein,char * nameout)1209 void onlgraph(char *namein, char *nameout)
1210 {
1211 int show = NAJI_TRUE;
1212 int a=0;
1213
1214 najin(namein);
1215 najout(nameout);
1216
1217
1218 loop
1219 {
1220 a = fgetc(naji_input);
1221
1222 if (a == EOF)
1223 endloop;
1224
1225 show = NAJI_FALSE;
1226
1227 if (isgraph(a))
1228 show = NAJI_TRUE;
1229
1230 if (show == NAJI_TRUE)
1231 fputc(a, naji_output);
1232 }
1233
1234 najinclose();
1235 najoutclose();
1236 }
1237
1238
onllower(char * namein,char * nameout)1239 void onllower(char *namein, char *nameout)
1240 {
1241 int show = NAJI_TRUE;
1242 int a=0;
1243
1244 najin(namein);
1245 najout(nameout);
1246
1247
1248 loop
1249 {
1250 a = fgetc(naji_input);
1251
1252 if (a == EOF)
1253 endloop;
1254
1255 show = NAJI_FALSE;
1256
1257 if (islower(a))
1258 show = NAJI_TRUE;
1259
1260 if (show == NAJI_TRUE)
1261 fputc(a, naji_output);
1262 }
1263
1264 najinclose();
1265 najoutclose();
1266 }
1267
1268
onlprint(char * namein,char * nameout)1269 void onlprint(char *namein, char *nameout)
1270 {
1271 int show = NAJI_TRUE;
1272 int a=0;
1273
1274 najin(namein);
1275 najout(nameout);
1276
1277
1278 loop
1279 {
1280 a = fgetc(naji_input);
1281
1282 if (a == EOF)
1283 endloop;
1284
1285 show = NAJI_FALSE;
1286
1287 if (isprint(a))
1288 show = NAJI_TRUE;
1289
1290 if (show == NAJI_TRUE)
1291 fputc(a, naji_output);
1292 }
1293
1294 najinclose();
1295 najoutclose();
1296 }
1297
1298
onlpunct(char * namein,char * nameout)1299 void onlpunct(char *namein, char *nameout)
1300 {
1301 int show = NAJI_TRUE;
1302 int a=0;
1303
1304 najin(namein);
1305 najout(nameout);
1306
1307
1308 loop
1309 {
1310 a = fgetc(naji_input);
1311
1312 if (a == EOF)
1313 endloop;
1314
1315 show = NAJI_FALSE;
1316
1317 if (ispunct(a))
1318 show = NAJI_TRUE;
1319
1320 if (show == NAJI_TRUE)
1321 fputc(a, naji_output);
1322 }
1323
1324 najinclose();
1325 najoutclose();
1326 }
1327
1328
onlspace(char * namein,char * nameout)1329 void onlspace(char *namein, char *nameout)
1330 {
1331 int show = NAJI_TRUE;
1332 int a=0;
1333
1334 najin(namein);
1335 najout(nameout);
1336
1337
1338 loop
1339 {
1340 a = fgetc(naji_input);
1341
1342 if (a == EOF)
1343 endloop;
1344
1345 show = NAJI_FALSE;
1346
1347 if (isspace(a))
1348 show = NAJI_TRUE;
1349
1350 if (show == NAJI_TRUE)
1351 fputc(a, naji_output);
1352 }
1353
1354 najinclose();
1355 najoutclose();
1356 }
1357
1358
onlupper(char * namein,char * nameout)1359 void onlupper(char *namein, char *nameout)
1360 {
1361 int show = NAJI_TRUE;
1362 int a=0;
1363
1364 najin(namein);
1365 najout(nameout);
1366
1367
1368 loop
1369 {
1370 a = fgetc(naji_input);
1371
1372 if (a == EOF)
1373 endloop;
1374
1375 show = NAJI_FALSE;
1376
1377 if (isupper(a))
1378 show = NAJI_TRUE;
1379
1380 if (show == NAJI_TRUE)
1381 fputc(a, naji_output);
1382 }
1383
1384 najinclose();
1385 najoutclose();
1386 }
1387
1388
onlxdigt(char * namein,char * nameout)1389 void onlxdigt(char *namein, char *nameout)
1390 {
1391 int show = NAJI_TRUE;
1392 int a=0;
1393
1394 najin(namein);
1395 najout(nameout);
1396
1397
1398 loop
1399 {
1400 a = fgetc(naji_input);
1401
1402 if (a == EOF)
1403 endloop;
1404
1405 show = NAJI_FALSE;
1406
1407 if (isxdigit(a))
1408 show = NAJI_TRUE;
1409
1410 if (show == NAJI_TRUE)
1411 fputc(a, naji_output);
1412 }
1413
1414 najinclose();
1415 najoutclose();
1416 }
1417
1418
tothe(char * str)1419 void tothe(char *str)
1420 {
1421 int i;
1422 int l;
1423
1424 l = strlen(str);
1425
1426 for (i=0; i<(l-1); i++)
1427 {
1428 printf("%c to the", str[i]);
1429
1430 if (i == (l-1) )
1431 break;
1432
1433 putchar(' ');
1434
1435 }
1436
1437 putchar(str[l-1]);
1438
1439 }
1440
1441
ftothe(char * namein,char * nameout)1442 void ftothe(char *namein, char *nameout)
1443 {
1444 int a;
1445
1446 int i;
1447 long l;
1448
1449 najin(namein);
1450 najout(nameout);
1451
1452 l = najinsize();
1453
1454 for (i=0; i<(l-1); i++)
1455 {
1456
1457 a = fgetc(naji_input);
1458
1459 fprintf(naji_output, "%c to the", a);
1460
1461 if (i == (l-1))
1462 break;
1463
1464 fputc(' ', naji_output);
1465 }
1466
1467 a = fgetc(naji_input);
1468 fputc(a, naji_output);
1469
1470 najinclose();
1471 najoutclose();
1472 }
1473
1474
strachar(char * str,char * namein,char * nameout)1475 void strachar(char *str, char *namein, char *nameout)
1476 {
1477 int a;
1478
1479 najin(namein);
1480 najout(nameout);
1481
1482 while(1)
1483 {
1484 a = fgetc(naji_input);
1485
1486 if (a == EOF)
1487 break;
1488
1489 fputc(a, naji_output);
1490
1491 fprintf(naji_output, str);
1492 }
1493
1494 najinclose();
1495 najoutclose();
1496 }
1497
1498
strbchar(char * str,char * namein,char * nameout)1499 void strbchar(char *str, char *namein, char *nameout)
1500 {
1501 int a;
1502
1503 najin(namein);
1504 najout(nameout);
1505
1506 while(1)
1507 {
1508 a = fgetc(naji_input);
1509
1510 if (a == EOF)
1511 break;
1512
1513 fprintf(naji_output, str);
1514
1515 fputc(a, naji_output);
1516 }
1517
1518 najinclose();
1519 najoutclose();
1520 }
1521
1522
rstrach(int len,char * namein,char * nameout)1523 void rstrach(int len, char *namein, char *nameout)
1524 {
1525 int a;
1526 int i;
1527
1528
1529 najin(namein);
1530 najout(nameout);
1531
1532 while(1)
1533 {
1534 a = fgetc(naji_input);
1535
1536 if (a == EOF)
1537 break;
1538
1539 fputc(a, naji_output);
1540
1541 for (i=0; i<len; i++)
1542 fputc(((rand() % 95)+' '), naji_output);
1543 }
1544
1545 najinclose();
1546 najoutclose();
1547 }
1548
1549
rstrbch(int len,char * namein,char * nameout)1550 void rstrbch(int len, char *namein, char *nameout)
1551 {
1552 int a;
1553 int i;
1554
1555
1556 najin(namein);
1557 najout(nameout);
1558
1559 while(1)
1560 {
1561 a = fgetc(naji_input);
1562
1563 if (a == EOF)
1564 break;
1565
1566 for (i=0; i<len; i++)
1567 fputc(((rand() % 95)+' '), naji_output);
1568
1569 fputc(a, naji_output);
1570 }
1571
1572 najinclose();
1573 najoutclose();
1574 }
1575
1576
cpfroml(unsigned long line,char * namein,char * nameout)1577 void cpfroml(unsigned long line, char *namein, char *nameout)
1578 {
1579 int a;
1580 unsigned long cnt = 0;
1581
1582 if (line <= 0)
1583 return;
1584
1585 line -= 1;
1586
1587 najin(namein);
1588 najout(nameout);
1589
1590 while (cnt != line)
1591 {
1592 a = fgetc(naji_input);
1593
1594 if (a == EOF)
1595 break;
1596
1597 if (a == '\n')
1598 cnt++;
1599 }
1600
1601 if (cnt == line)
1602 {
1603
1604 a = fgetc(naji_input);
1605
1606 if (a == EOF)
1607 {
1608 najinclose();
1609 najoutclose();
1610 return;
1611 }
1612
1613 if (a != '\r')
1614 fputc(a, naji_output);
1615
1616 while (1)
1617 {
1618 a = fgetc(naji_input);
1619
1620 if (a == EOF)
1621 break;
1622
1623 fputc(a, naji_output);
1624 }
1625
1626 }
1627
1628
1629 najinclose();
1630 najoutclose();
1631 }
1632
1633
cptiline(unsigned long line,char * namein,char * nameout)1634 void cptiline(unsigned long line, char *namein, char *nameout)
1635 {
1636 int a;
1637 unsigned long cnt = 0;
1638
1639 if (line <= 0)
1640 return;
1641
1642 najin(namein);
1643 najout(nameout);
1644
1645 while (1)
1646 {
1647 a = fgetc(naji_input);
1648
1649 if (a == EOF)
1650 break;
1651
1652 if (a == '\n')
1653 cnt++;
1654
1655 if (cnt == line)
1656 {
1657 a = fgetc(naji_input);
1658
1659 if (a == EOF)
1660 break;
1661
1662 if (a == '\r')
1663 fputc(a, naji_output);
1664
1665 break;
1666 }
1667
1668 fputc(a, naji_output);
1669
1670 }
1671
1672
1673
1674
1675 najinclose();
1676 najoutclose();
1677 }
1678
1679
istrael(char * str,int pos,char * namein,char * nameout)1680 void istrael(char *str, int pos, char *namein, char *nameout)
1681 {
1682 int a;
1683 int b;
1684 int isdos = NAJI_FALSE;
1685 int i = 0;
1686
1687 najin(namein);
1688 najout(nameout);
1689
1690
1691 if (pos == 0)
1692 {
1693
1694 while (1)
1695 {
1696 a = fgetc(naji_input);
1697 if (a == EOF)
1698 break;
1699
1700 if (a == '\r')
1701 {
1702 isdos = NAJI_TRUE;
1703 break;
1704 }
1705
1706 }
1707
1708 najinclose();
1709 najin(namein);
1710
1711 a = fgetc(naji_input);
1712
1713 if (a != EOF)
1714 {
1715
1716 if (a == '\n')
1717 {
1718 if (isdos == NAJI_TRUE)
1719 fprintf(naji_output, "%s\n\r", str);
1720
1721 else
1722 fprintf(naji_output, "%s\n", str);
1723 }
1724
1725 }
1726 else
1727 {
1728 najinclose();
1729 najoutclose();
1730 return;
1731 }
1732
1733
1734 b = fgetc(naji_input);
1735
1736 if (b != EOF)
1737 {
1738
1739 if (b == '\n')
1740 {
1741 if (isdos == NAJI_TRUE)
1742 fprintf(naji_output, "%s\n\r", str);
1743
1744 else
1745 fprintf(naji_output, "%s\n", str);
1746 }
1747
1748 }
1749 else
1750 {
1751 najinclose();
1752 najoutclose();
1753 return;
1754 }
1755
1756 najinclose();
1757 najin(namein);
1758 }
1759
1760
1761 while (1)
1762 {
1763 a = fgetc(naji_input);
1764
1765 if (a == EOF)
1766 break;
1767
1768 fputc(a, naji_output);
1769
1770 i++;
1771
1772 if (a == '\n')
1773 i=0;
1774
1775 if (i == pos)
1776 fputs(str, naji_output);
1777 }
1778
1779 najinclose();
1780 najoutclose();
1781 }
1782
1783
istreml(char * str,char * namein,char * nameout)1784 void istreml(char *str, char *namein, char *nameout)
1785 {
1786 int a;
1787 int b;
1788 int isdos = NAJI_FALSE;
1789
1790 najin(namein);
1791 najout(nameout);
1792
1793
1794 while (1)
1795 {
1796 a = fgetc(naji_input);
1797 if (a == EOF)
1798 break;
1799
1800 if (a == '\r')
1801 {
1802 isdos = NAJI_TRUE;
1803 break;
1804 }
1805
1806 }
1807
1808 najinclose();
1809 najin(namein);
1810
1811 a = fgetc(naji_input);
1812
1813 if (a != EOF)
1814 {
1815
1816 if (a == '\n')
1817 {
1818 if (isdos == NAJI_TRUE)
1819 fprintf(naji_output, "\n\r%s\n\r", str);
1820
1821 else
1822 fprintf(naji_output, "\n%s\n", str);
1823 }
1824
1825 }
1826 else
1827 {
1828 najinclose();
1829 najoutclose();
1830 return;
1831 }
1832
1833
1834 b = fgetc(naji_input);
1835
1836 if (b != EOF)
1837 {
1838
1839 if (b == '\n')
1840 {
1841 if (isdos == NAJI_TRUE)
1842 fprintf(naji_output, "\n\r%s\n\r", str);
1843
1844 else
1845 fprintf(naji_output, "\n%s\n", str);
1846 }
1847
1848 }
1849 else
1850 {
1851 najinclose();
1852 najoutclose();
1853 return;
1854 }
1855
1856 najinclose();
1857 najin(namein);
1858
1859
1860 while (1)
1861 {
1862 a = fgetc(naji_input);
1863
1864 if (a == EOF)
1865 break;
1866
1867 if (a == '\n')
1868 {
1869 b = fgetc(naji_input);
1870
1871 if (b == '\r')
1872 fprintf(naji_output, "\n\r%s\n\r", str);
1873
1874 else if (b == '\n')
1875 fprintf(naji_output, "\n%s\n", str);
1876
1877 else if (b == EOF)
1878 {
1879 fputc(a, naji_output);
1880
1881 if (isdos == NAJI_TRUE)
1882 fprintf(naji_output, "\n\r%s\n\r", str);
1883
1884 else
1885 fprintf(naji_output, "\n%s\n", str);
1886
1887 break;
1888 }
1889
1890 else
1891 {
1892 fputc(a, naji_output);
1893 fputc(b, naji_output);
1894 }
1895
1896 }
1897
1898 else
1899 fputc(a, naji_output);
1900
1901 }
1902
1903
1904
1905
1906
1907 najinclose();
1908 najoutclose();
1909 }
1910
1911
addline(char * namein,char * nameout,char * text_to_add,unsigned long line_number)1912 void addline(char *namein, char *nameout, char *text_to_add, unsigned long line_number)
1913 {
1914 int a;
1915 unsigned long i=0;
1916
1917 najin(namein);
1918 najout(nameout);
1919
1920
1921
1922 if (line_number == 1)
1923 {
1924 fprintf(naji_output, "%s\n", text_to_add);
1925
1926 while (1)
1927 {
1928 a = fgetc(naji_input);
1929
1930 if (a == EOF)
1931 break;
1932
1933 fputc(a, naji_output);
1934 }
1935
1936
1937 if (a == EOF)
1938 {
1939 najinclose();
1940 najoutclose();
1941 return;
1942 }
1943
1944 }
1945
1946
1947 line_number--;
1948
1949 while (1)
1950 {
1951 a = fgetc(naji_input);
1952
1953 if (a == EOF)
1954 {
1955 if (i == (line_number - 2))
1956 fprintf(naji_output, "%s\n", text_to_add);
1957
1958 break;
1959 }
1960
1961 fputc(a, naji_output);
1962
1963 if (a == '\n')
1964 i++;
1965
1966 if (i == line_number)
1967 {
1968 fprintf(naji_output, "%s\n", text_to_add);
1969 break;
1970 }
1971
1972
1973 }
1974
1975 if (a == EOF)
1976 {
1977 najinclose();
1978 najoutclose();
1979 return;
1980 }
1981
1982 while (1)
1983 {
1984 a = fgetc(naji_input);
1985
1986 if (a == EOF)
1987 break;
1988
1989 fputc(a, naji_output);
1990 }
1991
1992 najinclose();
1993 najoutclose();
1994 }
1995
1996
1997
removel(char * namein,char * nameout,unsigned long line_number)1998 void removel(char *namein, char *nameout, unsigned long line_number)
1999 {
2000 int a;
2001 unsigned long i=0;
2002 int has_nl = NAJI_FALSE;
2003
2004 najin(namein);
2005 najout(nameout);
2006
2007 if (line_number == 1)
2008 {
2009
2010 while (1)
2011 {
2012 a = fgetc(naji_input);
2013
2014 if (a == EOF)
2015 break;
2016
2017 else if (a == '\n')
2018 has_nl = NAJI_TRUE;
2019
2020 else
2021 {
2022
2023 if (has_nl == NAJI_TRUE)
2024 {
2025 while (1)
2026 {
2027 a = fgetc(naji_input);
2028
2029 if (a == EOF)
2030 break;
2031
2032 else
2033 fputc(a, naji_output);
2034 }
2035
2036 }
2037
2038 }
2039
2040
2041 }
2042
2043 najinclose();
2044 najoutclose();
2045 return;
2046 }
2047
2048 line_number--;
2049
2050 while (1)
2051 {
2052 a = fgetc(naji_input);
2053
2054 if (a == EOF)
2055 break;
2056
2057 if (a == '\n')
2058 i++;
2059
2060 if (i != line_number)
2061 fputc(a, naji_output);
2062
2063 else
2064 {
2065
2066 while (1)
2067 {
2068 a = fgetc(naji_input);
2069
2070 if ( (a == '\r') || (a == '\n') || (a == EOF) )
2071 break;
2072 }
2073
2074 if ( (a == '\r') || (a == '\n') || (a == EOF) )
2075 break;
2076 }
2077 }
2078
2079 if (a == EOF)
2080 {
2081 najinclose();
2082 najoutclose();
2083 return;
2084 }
2085
2086 if (a != '\r')
2087 fputc(a, naji_output);
2088
2089
2090 while (1)
2091 {
2092 a = fgetc(naji_input);
2093
2094 if (a == EOF)
2095 break;
2096
2097 fputc(a, naji_output);
2098 }
2099
2100 najinclose();
2101 najoutclose();
2102 }
2103
spyramid(char * str)2104 void spyramid(char *str)
2105 {
2106 unsigned long i=0;
2107 unsigned long x=0;
2108 unsigned long len = 0;
2109
2110 len = strlen(str);
2111
2112 for (x=0; x<len; x++)
2113 {
2114 for (i=0; i<x; i++)
2115 {
2116 fputc(str[i], stdout);
2117 }
2118
2119 fputc('\n', stdout);
2120 }
2121
2122 for (x=0; x<len; x++)
2123 {
2124 for (i=0; i<len-x; i++)
2125 {
2126 fputc(str[i], stdout);
2127 }
2128
2129 fputc('\n', stdout);
2130 }
2131
2132 }
2133
2134
2135
replacel(char * namein,char * nameout,char * str,unsigned long line_number)2136 void replacel(char *namein, char *nameout, char *str, unsigned long line_number)
2137 {
2138 int a;
2139 unsigned long i=0;
2140 int has_nl = NAJI_FALSE;
2141 int isdos = NAJI_FALSE;
2142
2143 najin(namein);
2144 najout(nameout);
2145
2146
2147 if (line_number == 1)
2148 {
2149
2150 while (1)
2151 {
2152 a = fgetc(naji_input);
2153
2154 if (a == EOF)
2155 {
2156 if (has_nl == NAJI_FALSE)
2157 fprintf(naji_output, "%s", str);
2158
2159 break;
2160 }
2161
2162
2163 else if (a == '\n')
2164 {
2165 fprintf(naji_output, "\n%s\n", str);
2166 has_nl = NAJI_TRUE;
2167 }
2168
2169 else
2170 {
2171
2172 if (has_nl == NAJI_TRUE)
2173 {
2174 while (1)
2175 {
2176 a = fgetc(naji_input);
2177
2178 if (a == EOF)
2179 break;
2180
2181 else
2182 fputc(a, naji_output);
2183 }
2184
2185 }
2186
2187 }
2188
2189
2190 }
2191
2192 najinclose();
2193 najoutclose();
2194 return;
2195 }
2196
2197 line_number--;
2198
2199
2200 while (1)
2201 {
2202 a = fgetc(naji_input);
2203
2204 if (a == EOF)
2205 break;
2206
2207 if (a == '\n')
2208 i++;
2209
2210 if (i != line_number)
2211 fputc(a, naji_output);
2212
2213
2214 else
2215 {
2216
2217 while (1)
2218 {
2219 a = fgetc(naji_input);
2220
2221 if (a == '\r')
2222 {
2223 isdos = NAJI_TRUE;
2224 break;
2225 }
2226
2227 if ((a == '\n') || (a == EOF) )
2228 break;
2229 }
2230
2231 if ( (a == '\r') || (a == '\n') || (a == EOF) )
2232 break;
2233 }
2234
2235 }
2236
2237
2238 if (a == EOF)
2239 {
2240 if (isdos == NAJI_TRUE)
2241 fprintf(naji_output, "\n\r%s", str);
2242 else
2243 fprintf(naji_output, "\n%s", str);
2244
2245 najinclose();
2246 najoutclose();
2247 return;
2248 }
2249
2250
2251 if (a != '\r')
2252 {
2253 fprintf(naji_output, "\n%s\n", str);
2254 }
2255
2256 else if (a == '\n')
2257 {
2258 fprintf(naji_output, "\n\r%s\n\r", str);
2259 }
2260
2261 while (1)
2262 {
2263 a = fgetc(naji_input);
2264
2265 if (a == EOF)
2266 break;
2267
2268 fputc(a, naji_output);
2269 }
2270
2271
2272
2273
2274 najinclose();
2275 najoutclose();
2276 }
2277