1
2   =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
3   najitool and libnaji to do list
4   =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
5
6           included in:
7
8          najitool 0.8.4
9           libnaji 0.6.4
10	  naji_gui 0.3.0.0 FINAL
11
12     Written by NECDET COKYAZICI
13
14       http://najitool.sf.net/
15
16
17najitool: search najitool valid command array to see if an
18incomplete invalid command is a part of an existing valid
19command and display them as suggestions.
20
21
22New Commands todo:
23
24cmpusort - compare two files and make a list of numbers on how to unsort them
25
26unsort - unsort a file
27
28deldbll - delete double lines
29
30delxtral - delete extra lines
31
32delafel - delete everything after the specified line position in every line.
33
34delbfel - delete everything before the specified line position in every line.
35
36xcopyoff - copy excluding offset.
37
38xcoffset - cat excluding offset.
39
40everywrd - tell how many times every word is repeated.
41
42chalphac - changes all small and capital letters into the specified character.
43
44chsmallc - changes all small letters into the specified character.
45
46chbigc   - changes all capital letters into the specified character.
47
48chpuncc  - changes all punctuation into the specified character.
49
50chspacec - changes all white space into the specified character.
51
52chbinc   - changes all binary characters to the specified character
53
54fcalphac - changes all small and capital letters into the specified character at number of first occcurances.
55
56fcsmallc - changes all small letters into the specified character at number of first occcurances.
57
58fcbigc   - changes all capital letters into the specified character at number of first occcurances.
59
60fcpuncc  - changes all punctuation into the specified character at number of first occcurances.
61
62fcspacec - changes all white space into the specified character at number of first occcurances.
63
64fcbinc   - changes all binary characters to the specified character at number of first occcurances.
65
66lcalphac - changes all small and capital letters into the specified character at number of last occcurances.
67
68lcsmallc - changes all small letters into the specified character at number of last occcurances.
69
70lcbigc   - changes all capital letters into the specified character at number of last occcurances.
71
72lcpuncc  - changes all punctuation into the specified character at number of last occcurances.
73
74lcspacec - changes all white space into the specified character at number of last occcurances.
75
76lcbinc   - changes all binary characters to the specified character at number of last occcurances.
77
78stairway - makes a stairway out of the characters of the files.
79
80
81
82
83///////////////////////////////////////////////////////////////////////////////
84Messy Ideas for next generation najitool, being able to combine multiple
85commands into one, and easily being able to specify simpler from a drop box.
86
87
88Action:             From                      To:               Option:
89Copy"               Small Letters             Random            (none)
90Generate            Capital Letters           Swap Char Range   (Repeat Char)
91                    Small & Capitals          String
92                    Punctuation
93                    Whitespace
94                    Character Range
95
96                                                                                 option 1   option 2
97
98input file | modified copy output file | from | small and capital letters | to | random | repeat (0)
99input file | modified copy output file | from | small and capital letters | to | swap characters range | param 1 (255-0) | repeat | param 2 (0)
100input file | modified copy output file | from | small and capital letters | to | string | param 1 "Hello No. 10" | repeat | param 2(0)
101
102
103
104input file | modified copy output file | from | small and capital letters | to | random | repeat (0)
105input file | modified copy output file | from | small and capital letters | to | swap characters range  (255-0) | repeat (0)
106input file | modified copy output file | from | small and capital letters | to | string "Hello No. 10" | repeat (0)
107
108input file | modified copy output file | from | characters range (0-255) | to | random | repeat (0)
109input file | modified copy output file | from | characters range (0-255) | to | swap characters range  (255-0) | repeat (0)
110input file | modified copy output file | from | characters range (0-255) | to | string "Hello No. 10" | repeat (0)
111
112
113
114
115| generated output file | characters range | random    | repeat (0)
116| generated output file | characters range | assending (0-255)
117| generated output file | characters range | desending (255-0)
118
119
120Small Letters
121Capital Letters
122Small and Capital Letters
123Punctuation
124Whitespace
125characters range 0-255 (param 1)
126
127Random
128Swap Character Range
129String
130
131///////////////////////////////////////////////////////////////////////////////
132
133
134
135-----------------------------------------------------------------
136
137add comments in libnaji.h saying which function is in which .c file
138
139-----------------------------------------------------------------
140
141make the najout and najin functions as one function, instead of making,
142najin2, najin3, najout2, najout3, etc, so maybe like:
143
144najin(1, namein1);
145najin(2, namein2);
146najin(3, namein3);
147
148najout(1, nameout1);
149najout(2, nameout2);
150najout(3, nameout3);
151
152a = fgetc(naji_input[1]);
153
154b = fgetc(naji_input[2]);
155
156etc.
157
158-----------------------------------------------------------------
159make libnaji act more like a library, with the functions returning
160values instead of exiting when an error occurrs, it should be up to
161najitool and other programs using libnaji to check the values,
162libnaji should be able to work with naji_gui and other gui programs
163without having to have to rewrite libnaji for gui's like naji_gui,
164-----------------------------------------------------------------
165improve the functions already in libnaji, fix bugs, make the functions
166faster and more efficent, by using less memory etc,
167and avoiding unnessary code.
168-----------------------------------------------------------------------------------
169improve the indentation of the najitool, libnaji, and naji_gui source code.
170
171some people have complained that they are poorly indented, well it was
172because I used a lot of different editors for the source code, and some
173editors messed up the tabs, and sometimes I've been really sleepy when
174coding so the code turned out kinda messy, and the indentation was
175inconsistent, but most of the code has a simular style if you look
176closely, it may look like its lots of different styles mixed up, but
177those are on a few functions only which I was really sleepy when doing,
178most of the code is a style of its own, which I call, the naji style,
179I might write a document about it someday, explaining, the "standard".
180any code thats constributed to this project gets converted
181to this style, manually by me, which takes a while,
182hence there are late releases sometimes.
183------------------------------------------------------------------------------------
184
185
186
187todo now:
188
189improve the "allfiles" function, give it the ability to resume generating
190files if it's interrupted, one way of doing this could be by starting from
191the beginning, process it but don't write the output if the file already
192exists, another way is by giving parameter to the all files function
193and the number of the last file it produced, for example:
194"najitool allfiles resume 100 108430" 100 being the size of the
195output files, it could start processing but not write the output file
196from the beginning until it gets to that last number, which is ineffecient,
197a better method would be for it to examine the last file, if it isnt the
198correct size, then disregard that file, because the interruption may have
199caused an incomplete file, check the file before it to see if its size is
200correct if it isnt the correct size then it's a user error, the user
201specified the wrong size, anyway, examine the last file or the one before
202it if the last one is incomplete, then according to the pattern of the last
203file, it generates what could come after that in the buffer, and it carries
204on.
205
206
207spacetab - converts spaces to tabs, you give it
208           the number of spaces to convert to a tab.
209
210linsnipe - make a copy of a file with the amount of characters
211           you specify to be removed from the end of each line.
212
213make a versions of chchars and chchar that does
214a random text character and a random binary character.
215
216
217onlybin - you give it the numbers of the binary characters,
218          and it makes a copy of the file with only those binary characters
219
220skipbin - you give it the numbers of the binary characters,
221          and it makes a copy of the file skipping those binary characters
222
223improve compare
224
225cmpnos   - compare without comparing white space
226(check naji_cmp.c for an already existing function you can use)
227
228uplinem  - like merge line but merges with same file but the first
229           or second side is upper case
230
231lowlinem - like above but lower case
232
233wordlist - a word list generator, takes 3 parameters,
234           characters, length of string, and output file.
235
236man2text - convert manual pages in UNIX systems to text files.
237
238text2man - convert text files into manual pages on UNIX systems.
239
240txt2html - Extend This - make it turn links to real links, and e-mail
241
242
243weight - weight converter/calculator - stones, kg, pounds, tons etc.
244
245nicetext - do a nice automatic text formatter like the license.txt
246
247shccmnts - show c and c++ comments
248
249rmccmts - remove c and c++ comments
250
251csemibug - a function that shows each lines without semicolons except
252for, while, if statements, but a for, while, if statement
253has a semicolon after it, then it should printf it show it
254would be easier for programmers to track small bugs like
255semicolons
256
257editfile - very simple ANSI C text editor
258
259hexiedit - ANSI C hexidecimel editor
260
261bitedit - like a hex editor but does bits (ANSI C)
262
263
264-----------
265todo next:
266
267
268catalot - cat unlimited amount of files, and also say the
269          name of the file that got cat'ed
270
271countype - count the extensions of files in a directory (folder) you specify
272	   does it recursively
273
274NOTE: I don't know if these functions are possible to do in ANSI C.
275
276----------------------------
277todo soon:
278
279c2html - makes a copy of a c source file as a html file with different
280colours for keywords, operators, preprocessor directives, identifiers,
281strings, characters, integers, hexidecimal values, and comments. makes
282the c source code inside a html table, with numbers outside the table
283(numbered lines) making it easy to copy the source code from a html
284browser without copying the numbers of the lines, useful for making
285C tutorials in html, you can mention a line with a certain code,
286and ask the reader to copy and paste the c source code into their
287compiler, and because its in a table it wont copy the numbered lines
288because the numbered lines would be outside the table.
289
290
291hashfile - generate a file with allfiles, compare it with
292the specified file, if it matches, get the number of the
293file, if it does not match, delete the file, and
294carry on generating and deleting until it generates a
295file that is the same.
296
297note: make a version of allfiles were you can specify
298the characters to be used, and make hashfile use that
299version of allfiles by checking the file and
300counting each character.
301
302genfile - keep generating and deleting the files
303with allfiles until it gets to the specified number.
304
305
306najicomp - my own compression format with the extension .njy
307
308
309random filename generater 8.3 style, upper case only A to Z -
310najoutrand(), najout2rand()
311
312
313do a built in for (i=0; i<something; i++)
314that does something like this
315
316najitool numtext 0 255 "text before number" "text after number"
317
318and one called fnumtext used the same but the file name before 0
319
320
321
322deepzip
323-------
324zips files inside zip files in the number of times you specify
325each zip with a random password
326(random characters and random length, with max random length you specify)
327stored in a normal text file one by one
328
329(other options, allow selection of random compression formats)
330
331for those who don't understand what i mean:
332a zip file inside a zip file inside a zip file inside a zip file... and so on
333
334------------------------
335
336do later on:
337
338pdf2html
339pdf2text
340
341doc2html
342doc2text
343
344and vice versa
345
346
347fndinall - search all compressed files typed that it
348           knows how to search for the file you specify
349fndinzip
350fndinrar
351fndintar
352fndintgz
353fndintbz
354fndinace
355
356
357compress:
358wavdecmp - wave file decompressor, turns compressed
359           wave files to non compressed
360
361
362
363password recover/test:
364ziprecov
365rarrecov
366acerecov
367pwdrecov - unix /etc/passwd file password recoverer/tester
368           (for unix admins only, not for crackers)
369
370
371c programming functions:
372
373makefgen - Makefile generator
374
375rndccode - random c code generator
376
377cpp2c - converts a c++ source file to a c source file as much as it can
378
379c2cpp - converts c source files to c++ source files
380
381cnice - formats the c source code to naji style - when i've had enough sleep
382
383cugly - make c source code ugly, as unreadable as possible to test cnice
384
385ansi_c - trys to turn the source code into ansi c as much as it can
386        for example getch(); becomes fgetc(stdin); it comments out
387	what it cant convert or removes it completely depending on
388	the user option
389
390
391other projects that i should do:
392
393najishel - a shell that has najitool commands as the built in commands
394
395naji_ide
396written in ANSI C with optional POSIX C
397extentions, an integreted development
398environment to make programming in C
399easier, features include ANSI C example
400code built into the help system,
401(and also stored in the examples
402directory) auto rename of variables when
403the first accurance of the variable is
404renamed like in the function definition
405or optionally any, rename of variable
406renames them all, bash like auto
407completion of function or variable
408names - searches for functions and
409variables in the included files and
410current file, asks you if you really
411want to rename ones in included files,
412ignores variable names in stardard
413ANSI headers, like stdio.h, stdlib.h,
414string.h, time.h, math.h unless you
415set an option to let it change them
416as well.
417
418
419---------------
420todo really, really, really, later (some complicated stuff here):
421
422mmftimes - multimedia file time split
423	   split the multimedia files at the time you specify
424	   like say the first one hour and 30 minutes of a movie
425	   or something
426
427convert:
428wavtomp3
429mp3towav
430mp3towma
431mp3toogg
432ogg2mp3
433ogg2wave
434ra2mp3
435ra2wave
436
437vob2avi
438vob2mpg1
439vob2mpg2
440vob2mpg4
441vob2divx
442vob2vcd
443vob2svcd (mpeg2)
444
445rm2avi
446rm2mpg1
447rm2mpg2
448rm2mpg4
449rm2divx
450rm2vcd
451rm2svcd (mpeg2)
452