1 #ifndef __LIBNAJI_H__NAJI__
2 #define __LIBNAJI_H__NAJI__
3 
4 /* --------- */
5 /* libnaji.h */
6 /* --------- */
7 
8 /* libnaji header file */
9 
10 /* this  .h  file is a part */
11 /* of libnaji version 0.6.4 */
12 
13 /* libnaji is based on   */
14 /* the original najitool */
15 
16 /* both najitool and libnaji */
17 /* are public domain and are */
18 /* made by the same author   */
19 /* please read license.txt   */
20 
21 /* made by NECDET COKYAZICI  */
22 
23 #include <math.h>
24 #include <time.h>
25 #include <ctype.h>
26 #include <stdio.h>
27 #include <stdlib.h>
28 #include <string.h>
29 #include <limits.h>
30 #include <errno.h>
31 
32 /* Begin MP3 Code, Written By ARKAINO, formally known as YEHRCL */
33 
34 #define TRUE 1
35 #define FALSE 0
36 #define BUFSIZE 2000
37 #define LITTLE_END(x) ( ((x & 0xff000000) >> 24) |   \
38                          ((x & 0x00ff0000) >> 8)  |  \
39                          ((x & 0x0000ff00) << 8)  |  \
40                          ((x & 0x000000ff) << 24) )
41 
42 /* this is for suppressing the last bit on each byte */
43 #define LITTLE_MESS(x) ( ((x & 0x0000007f) | ((x & 0x00000100) >> 1)) | \
44 			 (((x & 0x00007f00) | ((x & 0x00010000) >> 1)) >> 1) | \
45 			 (((x & 0x007f0000) | ((x & 0x01000000) >> 1)) >> 2) | \
46 			 ((x & 0x7f000000) >> 3) )
47 
48 enum fileperms {READ_ONLY, READ_WRITE};
49 
50 
51 #define GET_MPEG(x) (x & 0x08)
52 #define GET_LAYER(x) (x & 0x06)
53 #define GET_PROT(x) (x & 0x01)
54 #define GET_BRATE(x) (x & 0xf0)
55 #define GET_FREQ(x) (x & 0x0c)
56 #define GET_PADD(x) (x & 0x02)
57 
58 enum ids {
59 	MPEG1=0, PADDING, PROTECTED, LAYER3,
60 	BRATE32, BRATE40, BRATE48, BRATE56,
61 	BRATE64, BRATE80, BRATE96, BRATE112,
62 	BRATE128, BRATE160, BRATE192, BRATE224,
63 	BRATE256, BRATE320, FREQ44, FREQ48, FREQ32,
64 	BAD, BLANK
65 };
66 
67 /* not all fields are needed, but we declare them for further use */
68 struct frame_header {
69 	enum ids id, layer, protected,
70 		bitrate, padding, frequency;
71 	int size;
72 
73 };
74 
75 /* for printing the user the file attributes, etc */
76 struct idtable {
77 	char string[16];
78 	unsigned int value;
79 
80 };
81 
82 extern struct idtable idindex[22];
83 
84 struct id3v1 {
85 	char title[31], artist[31], album[31],
86 		year[5], comment[30];
87 	int track;
88 
89 };
90 
91 struct id3v2 {
92 	char * title, *artist, *album, *year, *track, *comment;
93 	int size;
94 
95 };
96 
97 extern char genres [127][18];
98 
99 enum id3version {ID3V1, ID3V2, BADVERSION};
100 
101 struct fileinfo {
102 	FILE * fd;
103 	struct id3v1 tag;
104 	struct id3v2 tag2;
105 	struct frame_header header;
106 	enum id3version tagver;
107 };
108 
109 
110 
111 /*
112  * Calculates the frame size from buffer and stores the header data.
113  * Returns the frame size in bytes, FALSE otherwise.
114  * TODO: CRC support??
115  */
116 int mp3header (char const * buffer, size_t count, struct frame_header * header);
117 
118 /*
119  * Checks for ID3v1 data in fd and writes it to tag.
120  * Returns FALSE in case an id3v1 tag isn't found, TRUE otherwise.
121  */
122 int mp3id3v1 (FILE * fd, struct id3v1 * tag);
123 
124 /*
125  * Checks for ID3v2 data in fd and writes it to tag.
126  * Returns FALSE in case an id3v2 tag isn't found, TRUE otherwise.
127  */
128 int mp3id3v2 (FILE * fd, struct id3v2 * tag);
129 
130 /*
131  * Looks for id3v1 in fd and updates it according to args.
132  * Returns TRUE if succeeded, FALSE otherwise.
133  */
134 int mp3editv1 (FILE * fd, char*const* args, int const numarg);
135 
136 /*
137  * Prints the name's mp3 file info.
138  */
139 void mp3info (char *name);
140 
141 /*
142  * Splits name's file from start to end and writes that part to output.
143  */
144 void mp3split (char const * name, char const * output,
145 	      unsigned int const start, unsigned int const end);
146 
147 /*
148  * Updates the mp3 tag info of name's file.
149  */
150 void mp3editag (char const * name, char* const* args, int const numarg);
151 
152 
153 /* End MP3 Code, Written By ARKAINO, formally known as YEHRCL */
154 
155 
156 
157 #ifndef naji_tolower
158 #define naji_tolower(a) if ( ( (a) >= 'A') && ( (a) <= 'Z') ) a += 32;
159 #endif
160 
161 #ifndef naji_toupper
162 #define naji_toupper(a) if ( ( (a) >= 'a') && ( (a) <= 'z') ) a -= 32;
163 #endif
164 
165 /* the random number initilizer macro */
166 /* using this before using the rndrange() */
167 /* macros is highly recommended because it */
168 /* makes rndrange produce a lot better */
169 /* random numbers, you only need to use */
170 /* it once.  */
171 
172 #ifndef rndinit
173 #define rndinit() srand(time(NULL))
174 #endif
175 
176 #ifndef rndrange
177 #define rndrange(start, end) ( rand() % ( (end) + (start) ) )
178 #endif
179 
180 #ifndef BYTE
181 #define BYTE unsigned char
182 #endif
183 
184 #ifndef WORD
185 #define WORD unsigned short
186 #endif
187 
188 #ifndef DWORD
189 #define DWORD unsigned long
190 #endif
191 
192 #ifndef UCHAR
193 #define UCHAR unsigned char
194 #endif
195 
196 #ifndef SHORT
197 #define USHORT unsigned short
198 #endif
199 
200 #ifndef UINT
201 #define UINT unsigned int
202 #endif
203 
204 #ifndef ULONG
205 #define ULONG unsigned long
206 #endif
207 
208 #ifndef SCHAR
209 #define SCHAR signed char
210 #endif
211 
212 #ifndef SSHORT
213 #define SSHORT signed short
214 #endif
215 
216 #ifndef SINT
217 #define SINT signed int
218 #endif
219 
220 #ifndef SLONG
221 #define SLONG signed long
222 #endif
223 
224 #ifndef FLOAT
225 #define FLOAT float
226 #endif
227 
228 #ifndef DOUBLE
229 #define DOUBLE double
230 #endif
231 
232 typedef unsigned char byte;
233 typedef unsigned short word;
234 typedef unsigned long dword;
235 
236 typedef unsigned char uchar;
237 typedef unsigned short ushort;
238 typedef unsigned int uint;
239 typedef unsigned long ulong;
240 
241 typedef signed char schar;
242 typedef signed short sshort;
243 typedef signed int sint;
244 typedef signed long slong;
245 
246 #ifndef naji_max
247 #define naji_max(a,b) ( ( (a) > (b) ) ? (a):(b) )
248 #endif
249 
250 #ifndef naji_min
251 #define naji_min(a,b) ( ( (a) < (b) ) ? (a):(b) )
252 #endif
253 
254 #ifndef PI
255 #define PI 3.14159265358979323846
256 #endif
257 
258 #ifndef najinew
259 #define najinew(Type, HowMany) (Type *) malloc(HowMany * sizeof(Type));
260 #endif
261 
262 #ifndef newchar
263 #define newchar(amount)  najinew(char, amount);
264 #endif
265 
266 #ifndef newshort
267 #define newshort(amount) najinew(short, amount);
268 #endif
269 
270 #ifndef newint
271 #define newint(amount)   najinew(int, amount);
272 #endif
273 
274 #ifndef newlong
275 #define newlong(amount)  najinew(long, amount);
276 #endif
277 
278 #ifndef newuchar
279 #define newuchar(amount) najinew(UCHAR, amount);
280 #endif
281 
282 #ifndef newshort
283 #define newshort(amount) najinew(USHORT, amount);
284 #endif
285 
286 #ifndef newuint
287 #define newuint(amount)  najinew(UINT, amount);
288 #endif
289 
290 #ifndef newulong
291 #define newulong(amount) najinew(ULONG, amount);
292 #endif
293 
294 #ifndef newfloat
295 #define newfloat(amount)  najinew(FLOAT, amount);
296 #endif
297 
298 #ifndef newdouble
299 #define newdouble(amount) najinew(DOUBLE amount);
300 #endif
301 
302 #ifndef exitnull
303 #define exitnull(item) \
304 if ( ( (item) == NULL ) ) \
305 {\
306 fprintf(stderr, "\n\nNULL pointer error\n\n"); exit(8);\
307 }
308 #endif
309 
310 #ifndef loop
311 #define loop while(1)
312 #endif
313 
314 #ifndef endloop
315 #define endloop break
316 #endif
317 
318 /* my version of the FALSE, TRUE defines */
319 /* to avoid clashes with other libraries and programs */
320 
321 #ifndef NAJI_FALSE
322 #define NAJI_FALSE 0
323 #endif
324 
325 #ifndef NAJI_TRUE
326 #define NAJI_TRUE  1
327 #endif
328 
329 extern FILE* naji_input;
330 extern FILE* naji_input2;
331 extern FILE* naji_output;
332 extern FILE* naji_output2;
333 extern FILE* naji_bmp_out;
334 extern FILE* naji_edit;
335 
336 
337 struct najiline {
338   int  len;
339   long pos;
340 };
341 
342 
343 char *addtolinebuf(char c, char *line_buf,
344 int cur_pos, int *cur_size, int block_size);
345 
346 char * chstr_line(char *line, char *str, char *newstr);
347 char * s_ay();
348 char * s_ayinkaci();
349 char * s_bugun();
350 char * s_dayofmon();
351 char * s_month();
352 char * s_systemdt();
353 char * s_today();
354 char * s_year();
355 char * s_yil();
356 char * skipstr_line(char *line, char *str);
357 
358 void bblensorts(FILE * sourcefile, FILE * destfile,
359 struct najiline *plines, struct najiline *plineend);
360 
361 void bblensortl(FILE * sourcefile, FILE * destfile,
362 struct najiline *plines, struct najiline *plineend);
363 
364 void writesorted(FILE *sourcefile, FILE *destfile, struct najiline *plines,
365 struct najiline *plineend, int lflong, char lastchar);
366 
367 int readforsort(FILE * sourcefile, FILE * destfile,
368 struct najiline **pplines, struct najiline **pplineend, char *lastchar);
369 
370 
371 int find_line(const char *line, const char *str);
372 int findi_line(const char *line, const char *str);
373 int isequal(char *str, char *tempbuf, int len, int start_pos);
374 int naji_a2e(int a);
375 int naji_e2a(int a);
376 int naji_e2a_unicode(int a);
377 int randkill(char *name);
378 int rngtotal(int start, int end);
379 int swrdcoun(const char *string);
380 int wrdcount(char *namein);
381 int zerokill(char *name);
382 long najedsize(void);
383 long naji_filesize(FILE *file);
384 long najin2size(void);
385 long najinsize(void);
386 long najout2size(void);
387 long najoutsize(void);
388 
389 uchar uc_rand_range(uchar start, uchar end);
390 uint ui_rand_range(uint start, uint end);
391 ulong ul_rand_range (ulong start, ulong end);
392 
393 unsigned char ascii_to_ebcdic_char(const unsigned char a);
394 unsigned char ebcdic_to_ascii_char(const unsigned char a);
395 
396 unsigned long howl(char *namein);
397 unsigned long longl(char *namein);
398 
399 void _8bit256(char *nameout, unsigned long rep);
400 void _bigascii(char *string, FILE *stream);
401 void add_entry(char *entry);
402 void add_entry_html(char *entry);
403 void add_entry_html_email(char *entry);
404 void add_entry_html_link(char *entry);
405 void addim(int max_times);
406 void addline(char *namein, char *nameout, char *text_to_add, unsigned long line_number);
407 
408 /* WARNING: be very careful with this */
409 /* function, it makes a lot of files  */
410 
411 /* you give it the size in bytes of every  */
412 /* possible byte combination that you want */
413 
414 void allfiles(unsigned long int size);
415 void allfiles_genfile(char *filename, short file_contents[], unsigned long int filesize);
416 void allfiles_genfilename(short a, short b, short filecontents[], unsigned long int filesize);
417 void allfiles_main(short a, short b, short *buffer, unsigned long int size);
418 
419 
420 
421 void allbmp16(void);
422 void allbmp16_genfile(char *filename, short file_contents[], unsigned long int filesize);
423 void allbmp16_genfilename(short a, short b, short filecontents[], unsigned long int filesize);
424 void allbmp16_main(short a, short b, short *buffer, unsigned long int size);
425 
426 
427 
428 
429 void arab2eng(char *namein, char *nameout);
430 void asc2ebc(char *namein, char *nameout);
431 void asctable(void);
432 void ay();
433 void ayinkaci();
434 void bigascif(char *string, char *nameout);
435 void bigascii(char *string);
436 void bin2c(char *namein, char *nameout, char *array_name);
437 void bin2hexi(char *namein, char *nameout);
438 void bin2text(char *namein, char *nameout);
439 void blanka(char *namein, char *nameout);
440 void bmpout(char *nameout);
441 void bmpoutclose(void);
442 void bremline(char *str, char *namein, char *nameout);
443 void bugun();
444 void bytsplit(char *namein, unsigned long peice_size);
445 void cat_head(char *namein, int n_lines);
446 void cat_tail(char *namein, int n_lines);
447 void cat_text(char *namein);
448 void cat_text_faster(char *namein);
449 void cat_text_faster_stdin(void);
450 void cat_text_fastest(char *namein);
451 void cat_text_fastest_stdin(void);
452 void cat_text_stdin(void);
453 void catrandl(char *namein);
454 void ccompare(char *namein, char *namein2);
455 void cfind(char *namein, char *str);
456 void cfindi(char *namein, char *str);
457 void charaftr(char *namein, char *nameout, char ch);
458 void charbefr(char *namein, char *nameout, char ch);
459 void charfile(char *nameout, unsigned long int size, int c);
460 void charwrap(int w, char *namein, char *nameout);
461 void charsort(char *namein, char *nameout);
462 void chchar(char *namein, char *nameout, char original, char changed);
463 void chchars(char *namein, char *nameout, char *original_chars, char *changed_chars);
464 void check_ps(void);
465 void chstr(char *namein, char *nameout, char *str, char *newstr);
466 void cm_to_feet(void);
467 void cm_to_inches(void);
468 void cm_to_km(void);
469 void cm_to_meters(void);
470 void cm_to_miles(void);
471 void cm_to_mm(void);
472 void cm_to_yards(void);
473 void coffset(char *namein, long startpos, long endpos);
474 void compare(char *namein, char *namein2);
475 void compfile(char *namein, char *namein2, int cont_on_diff);
476 void copyfile(char *namein, char *nameout);
477 void copyoffs(char *namein, long startpos, long endpos, char *nameout);
478 void copyrep(unsigned long int howmany);
479 void cpfroml(unsigned long line, char *namein, char *nameout);
480 void cptiline(unsigned long line, char *namein, char *nameout);
481 void datetime(void);
482 void dayofmon();
483 void dos2unix(char *namein, char *nameout);
484 void downlist(char *namein, char *nameout);
485 void dumpoffs(char *namein, long startpos, long endpos);
486 void e2ahtml(char *namein, char *nameout);
487 void ebc2asc(char *namein, char *nameout);
488 void elite_char_fprint(char a, FILE *out);
489 void elite_char_print(char a);
490 void endnaji(int error_level);
491 void eng2arab(char *namein, char *nameout);
492 void engnum(void);
493 void eremline(char *str, char *namein, char *nameout);
494 void errtext(void);
495 void f2lower(char *namein, char *nameout);
496 void f2upper(char *namein, char *nameout);
497 void feet_to_cm(void);
498 void feet_to_inches(void);
499 void feet_to_km(void);
500 void feet_to_meters(void);
501 void feet_to_miles(void);
502 void feet_to_mm(void);
503 void feet_to_yards(void);
504 void filbreed(char *namein, char *namein2, char *nameout);
505 void file2bin(char *namein, char *nameout);
506 void file2dec(char *namein, char *nameout);
507 void file2hex(char *namein, char *nameout);
508 void filechop(long copytil, char *namein, char *nameout, char *nameout2);
509 void filejoin(char *namein, char *namein2, char *nameout);
510 void fillfile(char *named, char c);
511 void find_basis(char *namein, char *str, int sensitive, int show_matches);
512 void find(char *namein, char *str);
513 void findi(char *namein, char *str);
514 void flipcopy(char *namein, char *nameout);
515 void fprint_16_bit_bin(FILE *out, int num);
516 void fprint_8_bit_bin(FILE *out, char num);
517 void freverse(char *namein, char *nameout);
518 void fswpcase(char *namein, char *nameout);
519 void ftothe(char *namein, char *nameout);
520 void gbsplit(char *namein, unsigned long peice_size);
521 void getlinks(char *namein, char *nameout);
522 void get_password(void);
523 void get_strength(void);
524 void get_datetime();
525 void gdivide(float start, float end);
526 void gigabyte(unsigned long i);
527 void gminus(int start, int end);
528 void gplus(int start, int end);
529 void gtimes(int start, int end);
530 void hexaddim();
531 void hexicat(char *namein);
532 void hexierr(void);
533 void hilist(char *namein, char *nameout);
534 void hmaker(char *namein);
535 void hmakerf(char *namein, char *nameout);
536 void howline(char *namein);
537 void html2txt(char *namein, char *nameout);
538 void htmlfast(char *namein, char *nameout);
539 void inches_to_cm(void);
540 void inches_to_feet(void);
541 void inches_to_km(void);
542 void inches_to_meters(void);
543 void inches_to_miles(void);
544 void inches_to_mm(void);
545 void inches_to_yards(void);
546 void istrael(char *str, int pos, char *namein, char *nameout);
547 void istreml(char *str, char *namein, char *nameout);
548 void kbsplit(char *namein, unsigned long peice_size);
549 void kiterr(void);
550 void kitten(char *namein);
551 void kitten_stdin(void);
552 void km_to_cm(void);
553 void km_to_feet(void);
554 void km_to_inches(void);
555 void km_to_meters(void);
556 void km_to_miles(void);
557 void km_to_mm(void);
558 void km_to_yards(void);
559 void lcharvar(char *str);
560 void lcvfiles(char *namein);
561 void leetfile(char *namein, char *nameout);
562 void leetstr(char *string);
563 void length(void);
564 void lensort_basis(char whichone, char *namein, char *nameout);
565 void lensortl(char *namein, char *nameout);
566 void lensorts(char *namein, char *nameout);
567 void lineback(char *namein);
568 void linesnip(int bytes, char *namein, char *nameout);
569 void listdigt(unsigned int size, char *nameout);
570 void listlowr(unsigned int size, char *nameout);
571 void listprnt(unsigned int size, char *nameout);
572 void listuppr(unsigned int size, char *nameout);
573 void makarray(char *namein, char *nameout, char *namevar);
574 void mathgame(void);
575 void mbsplit(char *namein, unsigned long peice_size);
576 void mergline(char *namein, char *namein2, char *nameout, char *beforeline, char *afterline);
577 void meters_to_cm(void);
578 void meters_to_feet(void);
579 void meters_to_inches(void);
580 void meters_to_km(void);
581 void meters_to_miles(void);
582 void meters_to_mm(void);
583 void meters_to_yards(void);
584 void miles_to_cm(void);
585 void miles_to_feet(void);
586 void miles_to_inches(void);
587 void miles_to_km(void);
588 void miles_to_meters(void);
589 void miles_to_mm(void);
590 void miles_to_yards(void);
591 void mjoin(char *namein_original_filename, char *nameout_joined_output_file);
592 void mkpatch(char *original, char *patched, char *patchfile);
593 void mm_to_cm(void);
594 void mm_to_feet(void);
595 void mm_to_inches(void);
596 void mm_to_km(void);
597 void mm_to_meters(void);
598 void mm_to_miles(void);
599 void mm_to_yards(void);
600 void month();
601 void n2ch(char ch, char *namein, char *nameout);
602 void n2str(char *str, char *namein, char *nameout);
603 void najcrypt(void);
604 void najed(char *named);
605 void najedclose(void);
606 void naji_(int a, FILE *stream);
607 void naji_0(int a, FILE *stream);
608 void naji_1(int a, FILE *stream);
609 void naji_2(int a, FILE *stream);
610 void naji_3(int a, FILE *stream);
611 void naji_4(int a, FILE *stream);
612 void naji_5(int a, FILE *stream);
613 void naji_6(int a, FILE *stream);
614 void naji_7(int a, FILE *stream);
615 void naji_8(int a, FILE *stream);
616 void naji_9(int a, FILE *stream);
617 void naji_a(int a, FILE *stream);
618 void naji_addim(unsigned long start, unsigned long end, unsigned long addby);
619 void naji_ascii(char *string, int i, int a, FILE *stream);
620 void naji_ascii_aposclose(int a, FILE *stream);
621 void naji_ascii_aposopen(int a, FILE *stream);
622 void naji_ascii_bslash(int a, FILE *stream);
623 void naji_ascii_colon(int a, FILE *stream);
624 void naji_ascii_coma(int a, FILE *stream);
625 void naji_ascii_exclaimark(int a, FILE *stream);
626 void naji_ascii_fslash(int a, FILE *stream);
627 void naji_ascii_lessthan(int a, FILE *stream);
628 void naji_ascii_morethan(int a, FILE *stream);
629 void naji_ascii_numsign(int a, FILE *stream);
630 void naji_ascii_paranclose(int a, FILE *stream);
631 void naji_ascii_paranopen(int a, FILE *stream);
632 void naji_ascii_period(int a, FILE *stream);
633 void naji_ascii_pipe(int a, FILE *stream);
634 void naji_ascii_semicolon(int a, FILE *stream);
635 void naji_ascii_underscore(int a, FILE *stream);
636 void naji_b(int a, FILE *stream);
637 void naji_bmp(void);
638 void naji_bmpheader(void);
639 void naji_c(int a, FILE *stream);
640 void naji_calc(void);
641 void naji_credits(void);
642 void naji_d(int a, FILE *stream);
643 void naji_database(void);
644 void naji_dec(void);
645 void naji_del_gen_unicode_html_pages(void);
646 void naji_e(int a, FILE *stream);
647 void naji_enc(void);
648 void naji_f(int a, FILE *stream);
649 void naji_g(int a, FILE *stream);
650 void naji_gen_unicode_html_pages(void);
651 void naji_genlic();
652 void naji_h(int a, FILE *stream);
653 void naji_hexaddim(unsigned long start, unsigned long end, unsigned long addby);
654 void naji_html_database(void);
655 void naji_i(int a, FILE *stream);
656 void naji_j(int a, FILE *stream);
657 void naji_k(int a, FILE *stream);
658 void naji_l(int a, FILE *stream);
659 void naji_license(void);
660 char **naji_lines_alloc(unsigned long howmany, unsigned long howlong);
661 void naji_lines_free(char **buffer, unsigned long howmany);
662 void naji_lines_load(char *namein, char **buffer, unsigned long howmany, unsigned long howlong);
663 void naji_lines_backwards_print(char **buffer, unsigned long howmany);
664 void naji_lines_print(char **buffer, unsigned long howmany);
665 void naji_lines_random_print(char **buffer, int howmany);
666 void naji_m(int a, FILE *stream);
667 void naji_n(int a, FILE *stream);
668 void naji_o(int a, FILE *stream);
669 void naji_p(int a, FILE *stream);
670 void naji_q(int a, FILE *stream);
671 void naji_r(int a, FILE *stream);
672 void naji_s(int a, FILE *stream);
673 void naji_t(int a, FILE *stream);
674 void naji_u(int a, FILE *stream);
675 void naji_unicode_html_end(void);
676 void naji_unicode_html_header(int n);
677 void naji_v(int a, FILE *stream);
678 void naji_w(int a, FILE *stream);
679 void naji_x(int a, FILE *stream);
680 void naji_y(int a, FILE *stream);
681 void naji_z(int a, FILE *stream);
682 void najifgets(char *buf, int size, FILE *input);
683 void najin(char *namein);
684 void najin2(char *namein2);
685 void najin2close(void);
686 void najinclose(void);
687 void najintext(char *namein);
688 void najirle(char *namein, char *nameout);
689 void najisum(char *namein);
690 void najout(char *nameout);
691 void najout2(char *nameout2);
692 void najout2close(void);
693 void najoutclose(void);
694 void nextpage(void);
695 void longline(char *namein);
696 void numlines(char *namein, char *nameout);
697 void onlalnum(char *namein, char *nameout);
698 void onlalpha(char *namein, char *nameout);
699 void onlcntrl(char *namein, char *nameout);
700 void onldigit(char *namein, char *nameout);
701 void onlgraph(char *namein, char *nameout);
702 void onllower(char *namein, char *nameout);
703 void onlprint(char *namein, char *nameout);
704 void onlpunct(char *namein, char *nameout);
705 void onlspace(char *namein, char *nameout);
706 void onlupper(char *namein, char *nameout);
707 void onlxdigt(char *namein, char *nameout);
708 void onlycat(char *namein, char *toshow);
709 void onlychar(char *namein, char *nameout, char *toshow);
710 void patch(char *named);
711 void printftx(char *namein, char *nameout);
712 void putlines(char *namein, char *nameout, char *beforeline, char *afterline);
713 void qcrypt(char *namein, char *nameout);
714 void qpatch(char *named, char *patch_file);
715 void rand_init(void);
716 void rcharvar(char *str);
717 void rcvfiles(char *namein);
718 void rbcafter(char *namein, char *nameout);
719 void rbcbefor(char *namein, char *nameout);
720 void remline(char *str, char *namein, char *nameout);
721 void removel(char *namein, char *nameout, unsigned long line_number);
722 void repcat(char *namein, unsigned int repeat);
723 void repcatpp(char *namein, unsigned int start);
724 void repchar(char *namein, char *nameout, unsigned int repeat);
725 void repcharp(char *namein, char *nameout, unsigned int start);
726 void reperr(unsigned int repeat);
727 void replacel(char *namein, char *nameout, char *str, unsigned long line_number);
728 int return_random(int max);
729 void revcat(char *namein);
730 void revlines(char *namein, char *nameout);
731 void rndbfile(char *nameout, unsigned long int size);
732 void rndbsout(unsigned long int size);
733 void rndffill(char *named);
734 void rndlines(char *namein);
735 void rndtfile(char *nameout, unsigned long int size);
736 void rndtsout(unsigned long int size);
737 void rngtotal_test();
738 void rrrchars(char *namein, char *nameout, int start, int end);
739 void rstrach(int len, char *namein, char *nameout);
740 void rstrbch(int len, char *namein, char *nameout);
741 void rtcafter(char *namein, char *nameout);
742 void rtcbefor(char *namein, char *nameout);
743 void saat();
744 void saatarih(void);
745 void safegets(char *buf, int size);
746 void sflpcase(char *str);
747 void show_16_bit_bin(int num);
748 void show_8_bit_bin(char num);
749 void showline(char *namein, unsigned long line);
750 void shuffle_int_array(int *array, int size);
751 void skipcat(char *namein, char *toskip);
752 void skipchar(char *namein, char *nameout, char *toskip);
753 void skiperr(char *toskip);
754 void skipstr(char *namein, char *nameout, char *str);
755 void skpalnum(char *namein, char *nameout);
756 void skpalpha(char *namein, char *nameout);
757 void skpcntrl(char *namein, char *nameout);
758 void skpdigit(char *namein, char *nameout);
759 void skpgraph(char *namein, char *nameout);
760 void skplower(char *namein, char *nameout);
761 void skpprint(char *namein, char *nameout);
762 void skppunct(char *namein, char *nameout);
763 void skpspace(char *namein, char *nameout);
764 void skpupper(char *namein, char *nameout);
765 void skpxdigt(char *namein, char *nameout);
766 int  sortcomp(const void *a, const void *b);
767 void sort(char *namein);
768 void sortlast(char *namein);
769 void sort_basis(char *namein);
770 void sp2ce2sp(char c, char *namein, char *nameout);
771 void sp2re2sp(char *namein, char *nameout);
772 void spyramid(char *str);
773 void sreverse(char *str);
774 void sstrfile(unsigned long int strictsize, char *string);
775 void stolower(char *str);
776 void stoupper(char *str);
777 void str_move_left(char * s, int n);
778 void strachar(char *str, char *namein, char *nameout);
779 void strbchar(char *str, char *namein, char *nameout);
780 void strbline(char *namein, char *nameout, char *str);
781 void streline(char *namein, char *nameout, char *str);
782 void strfile(char *nameout, unsigned long int howmany, char *string);
783 void swapfeb(char *namein, char *namein2, char *nameout);
784 void systemdt();
785 void tabspace(int spaces, char *namein, char *nameout);
786 void telltime();
787 void today();
788 void tolowers(char *str);
789 void tolowersn(char *str, int n);
790 void touppers(char *str);
791 void touppersn(char *str, int n);
792 void tothe(char *str);
793 void ttt(void);
794 void ttt_computermove(void);
795 void ttt_displayboard(void);
796 void ttt_displaywinner(void);
797 char ttt_gameover(void);
798 void ttt_humanmove(void);
799 void ttt_instructions(void);
800 void turnum(void);
801 void txt2html(char *namein, char *nameout);
802 void unajirle(char *namein, char *nameout);
803 void unblanka(char *namein, char *nameout);
804 void unix2dos(char *namein, char *nameout);
805 void uudecode(char *namein, char *nameout);
806 void uuencode(char *namein, char *nameout);
807 void vowelwrd(char *str);
808 void weakrypt(const char *password, char *namein, char *nameout);
809 void wipe_pwd(void);
810 void wordline(char *namein, char *nameout);
811 void wordlist(short a, short b, unsigned int size, char *nameout);
812 void wordwrap(char *namein, char *nameout);
813 void yards_to_cm(void);
814 void yards_to_feet(void);
815 void yards_to_inches(void);
816 void yards_to_km(void);
817 void yards_to_meters(void);
818 void yards_to_miles(void);
819 void yards_to_mm(void);
820 void year();
821 void yil();
822 
823 
824 #endif /* __LIBNAJI_H__NAJI__ */
825