Patch #1599 has been updated. Project: Category: libstore Status: Closed Summary: store_typed_open on file name doesn't call store_open
Follow-Ups: Date: Thu 07/31/2003 at 23:17 By: marcus Comment: This patch is definitely wrong. The code should do the following: FOO:BAR - Open the class FOO with parameter BAR FOO: - Open the class FOO with no parameter :BAR - Open the file BAR (with store_open) BAZ - Try to find a class BAZ, and open that with no parameter, but if class is not found, open file BAZ with store_open. Look at the code: const char *clname_end = strchrnul (name, ':'); if (clname_end == name) /* Open NAME with store_open. */ return store_open (name + 1, flags, classes, store); This covers the ":BAR" case. You make the code look in that case for a class "". Then come all the other cases, which (potentially) start with a class name. So we search for classes, either in the statically linked list, or by dynamically loading a library with that class. Only if that fails, and there is no ':', then we know we have a BAZ case where BAZ is not a class, but a file. Then open the file. I think the only bug here is that the dynamic loading mechanism segfaults, which you probably have fixed with your linker change. So I am closing this. If I overlooked something, we can reopen it. ------------------------------------------------------- ------------------------------------------------------- For more info, visit: http://savannah.gnu.org/patch/?func=detailpatch&patch_id=1599&group_id=30 _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-hurd mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-hurd