summaryrefslogtreecommitdiff
path: root/libstore/create.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2001-12-29 00:31:52 +0000
committerRoland McGrath <roland@gnu.org>2001-12-29 00:31:52 +0000
commite251acc12f50473729daa7c1b1890f1c050063c0 (patch)
tree88028e6999f09108f42a3a378459d07b50e0ed21 /libstore/create.c
parent1d751a7a5810c6b1bdf4557dfb8bdfdb27405fea (diff)
2001-12-26 Roland McGrath <roland@frob.com>
* unknown.c: New file. * Makefile (SRCS): Add it. * store.h (store_unknown_class, store_unknown_decode): Declare them. * create.c (store_create): If store_decode fails with EINVAL, and we were called with the STORE_NO_FILEIO flag bit set, then use store_unknown_decode.
Diffstat (limited to 'libstore/create.c')
-rw-r--r--libstore/create.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libstore/create.c b/libstore/create.c
index 71a4c62e..010a053e 100644
--- a/libstore/create.c
+++ b/libstore/create.c
@@ -1,7 +1,7 @@
/* Store creation
- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
- Written by Miles Bader <miles@gnu.ai.mit.edu>
+ Copyright (C) 1995,96,97,2001 Free Software Foundation, Inc.
+ Written by Miles Bader <miles@gnu.org>
This file is part of the GNU Hurd.
The GNU Hurd is free software; you can redistribute it and/or
@@ -65,6 +65,9 @@ store_create (file_t source, int flags,
if (err)
store_free (*store);
}
+ else if (err == EINVAL && (flags &~ STORE_INACTIVE) == STORE_NO_FILEIO)
+ /* Open a generic "unknown" store that can regurgitate this encoding. */
+ err = store_unknown_decode (&enc, classes, store);
store_enc_dealloc (&enc);