Now, let's add the local.index.stem.remove_s_french to the local.* hierarchy. If the middle-level hierarchy does not exist yet, you might have to create it, too. This is currently the case with local.index.*: the local.index.stem.* hierarchy does not exist yet, as can be seen if you look at the data structure that describes the local.index.* hierarchy, which is stored in the lproc_index variable in the file smart.11.0/src/liblocal/libproc/proc_index.c . The hierarchies that currently exist in this place are top, preparse, parts_preparse, parse_sect, token_to_con and makevec; but no 'stem' hierarchy is present. To create it, add a new structure element for 'stem'; you can copy the corresponding line from the smart.11.0/src/libproc/proc_index.c .
For this example, you can also type
cd smart.11.0/src/liblocal/libproc/ patch -p0 < proc_index.diffto apply all the modifications to this file.
Once the hierarchy local.index.stem.* is created, its contents must be defined. In our example, a single entry is created into the local.index.stem.* , as a member of a new structure of type PROC_TAB. (Again, you can look at how it is done in the index.stem.* hierarchy by reading the source file smart.11.0/src/libproc/proc_index.c .)
Note that the prototype for the three function init_remove_s_french(), remove_s_french() and close_remove_s_french() are contained in the proc_index.c file.