]> git.wh0rd.org - dump.git/blobdiff - compat/lib/fstab.c
kill "register".
[dump.git] / compat / lib / fstab.c
index 3bbae804403891945327967a8cd5ee9e54b3496c..de95455debc40b916a6f25112eda8ddf1e369cb1 100644 (file)
@@ -2,7 +2,8 @@
  *     Ported to Linux's Second Extended File System as part of the
  *     dump and restore backup suit
  *     Remy Card <card@Linux.EU.Org>, 1994-1997
- *     Stelian Pop <pop@cybercable.fr>, 1999
+ *     Stelian Pop <stelian@popies.net>, 1999-2000
+ *     Stelian Pop <stelian@popies.net> - AlcĂ´ve <www.alcove.com>, 2000-2002
  */
 
 /*
 
 #ifndef lint
 static const char rcsid[] =
-       "$Id: fstab.c,v 1.5 1999/10/13 09:57:19 stelian Exp $";
+       "$Id: fstab.c,v 1.13 2002/01/25 15:08:59 stelian Exp $";
 #endif /* not lint */
 
+#include <config.h>
 #include <errno.h>
 #include <fstab.h>
 #include <mntent.h>
@@ -50,6 +52,7 @@ static const char rcsid[] =
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include <bylabel.h>
 
 static FILE *_fs_fp;
 static struct fstab _fs_fstab;
@@ -57,20 +60,28 @@ static struct fstab _fs_fstab;
 static void error __P((int));
 static int fstabscan __P((void));
 
+void msg __P((const char *fmt, ...));
+
 static
 int fstabscan(void)
 {
        struct mntent   *mnt;
-       register char *cp;
+       char *cp;
        int typexx;
 #define        MAXLINELENGTH   1024
        char subline[MAXLINELENGTH];
 
        for (;;) {
+               const char *device_name;
                if (!(mnt = getmntent(_fs_fp)))
                        return 0;
 
-               _fs_fstab.fs_spec = mnt->mnt_fsname;
+               device_name = get_device_name(mnt->mnt_fsname);
+               if (!device_name) {
+                       msg("Warning: unable to translate %s\n", mnt->mnt_fsname);
+                       continue;
+               }
+               _fs_fstab.fs_spec = device_name;
                _fs_fstab.fs_file = mnt->mnt_dir;
                _fs_fstab.fs_vfstype = mnt->mnt_type;
                _fs_fstab.fs_mntops = mnt->mnt_opts;