BRL-CAD source code currently has over 450 C header (include) files. Header files usually include a preprocessor block that ensures the header is only included once. It usually looks something like this:
#ifndef THIS_HEADER
#define THIS_HEADER
... file contents ...
#endif /* THIS_HEADER */
This tasks basically involves editing that THIS_HEADER string for our src/ subdirectory headers (except not src/conv or src/lib*, they are other tasks) so that they're using a consistent header guard naming convention. Some of our files use a convention like __FILE_H__ while others use FILE_H or FILE_H__ or others still using some other convention.
Your job is to make them all the same, based on the file name, for some of our headers. Our convention should be {SUBPATH_}FILENAME_H where SUBPATH indicates the subdirectory where the header resides minus the first directory; and FILENAME_H is the name of the file with punctuation and spaces converted to underscores.
Some examples:
- include/bu.h becomes just BU_H
- src/libbu/anim.h becomes LIBBU_ANIM_H
- src/conv/iges/iges.h becomes CONV_IGES_IGES_H
Code:
- src/* (except NOT src/conv and NOT src/lib* like src/libbu, src/librt, etc).
References:
- http://brlcad.org/wiki/Compiling
Suggest using the VM if you're not on Linux, but this command will locate all of the header files for you from the top of a source tree checkout:
find . \( -not -regex '.*src/other.*' -not -regex '.*svn.*' -not -regex '.*cmake.*' \) -name \*.h | grep src | grep -v src/lib | grep -v src/conv
This is a lot of edits, but they are very simple edits. You don't even really need to understand C to do this task, but it might help you go a little faster. You're welcome to write a script or not.
You only need to be able to first compile BRL-CAD successfully so you can recompile during/after your edits and know whether you changed anything wrong.
Obtain our trunk sources from a Subversion checkout or VM from Sourceforge. Submit a patch file of all your changes: svn diff my_patch.diff
File name/URL | File size | Date submitted | |
---|---|---|---|
src_headers.diff | 36.9 KB | December 16 2013 02:23 UTC |
I would like to work on this task.
This task has been assigned to Andromeda Galaxy. You have 72 hours to complete this task, good luck!
The work on this task is ready to be reviewed.
Congratulations, this task has been completed successfully.
Andromeda, this is great work, now multiple clean patches under your belt. Please create a sourceforge account if you've not done so already and e-mail me your account name (or let me know over IRC PM).
Your patch was applied in r58934.