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