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