> When you write a library one of the objects is to minimize > what code is included in the binary when the library is linked. > When you link with a library you extract object files from the > archive, so all the functions of the object file are included > in the program, even if the program don't use them. > > So the common way is to put every function in a different file with > the name of the function. You can argue that in rune.c there are > several functions, but if you look them, you will see runetochar calls > runelen, chartorune calls charntorune, chartorune calls runelen, > runenlen calls to runelen and fullrune calls to charntorune, so the > dependences between them are really strong, and they are small > functions, so it is not a big problem. > > But I think this is not the case of chartorunearr that is a uncommon > function that has 3 calls to other functions, for example strlen and > emalloc, so it means you are going to have them in your program even > if you use only runelen. This is something very bad.
Yes this is how it needs to be done. In sbase libutf each function is in a separate .c file.