I attach then new test.c for grub2. (I worked from Grub 1.94 version). It only implements the test -e feature. I haven't been able to check it. ./configure says something about a LZO version. 1) Why cat uses the file = grub_gzfile_open (args[0], 1); sentence to check if a file can be opened or not? Is it cat supposed to cat also gzipped files? Is it better for me to use grub_gzfile_open on my test command? 2) I've done this: static const struct grub_arg_option options[] = { {"file", 'e', 0, "test if a file exists", 0, 0}, {0, 0, 0, 0, 0, 0} }; copying-pasting from search.c but I do not understand it too much... if this is repeated in test.c and search.c the compiler should complain... isn't it ? 3) And you're free to tell to only attach patchs instead of the full file... and you're free to tell me an url for a gnu c syntax or convention as far as I do not know if the gnu project has any. And, of course, tell me if it compiles or not. adrian15 P.S.: I am going to update from Knoppix 4 to Knoppix 5 soon and I think I won't hae the lzo problem.