+unsigned FileInfoCount (void)
+/* Return the total number of file infos */
+{
+ return CollCount (&FileInfos);
+}
+
+
+
+void AssignFileInfoIds (void)
+/* Remove unused file infos and assign the ids to the remaining ones */
+{
+ unsigned I, J;
+
+ /* Print all file infos */
+ for (I = 0, J = 0; I < CollCount (&FileInfos); ++I) {
+
+ /* Get the next file info */
+ FileInfo* FI = CollAtUnchecked (&FileInfos, I);
+
+ /* If it's unused, free it, otherwise assign the id and keep it */
+ if (CollCount (&FI->Modules) == 0) {
+ FreeFileInfo (FI);
+ } else {
+ FI->Id = J;
+ CollReplace (&FileInfos, FI, J++);
+ }
+ }
+
+ /* The new count is now in J */
+ FileInfos.Count = J;
+}
+
+
+