* 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
*/
/*
* SUCH DAMAGE.
*/
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)fstab.c 8.1 (Berkeley) 6/4/93";
-#endif /* LIBC_SCCS and not lint */
+#ifndef lint
+static const char rcsid[] =
+ "$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>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <bylabel.h>
static FILE *_fs_fp;
static struct fstab _fs_fstab;
static void error __P((int));
static int fstabscan __P((void));
+void msg __P((const char *fmt, ...));
+
static
-int fstabscan()
+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;
}
struct fstab *
-getfsent()
+getfsent(void)
{
if ((!_fs_fp && !setfsent()) || !fstabscan())
return((struct fstab *)NULL);
}
struct fstab *
-getfsspec(name)
- register const char *name;
+getfsspec(const char *name)
{
if (setfsent())
while (fstabscan())
}
struct fstab *
-getfsfile(name)
- register const char *name;
+getfsfile(const char *name)
{
if (setfsent())
while (fstabscan())
return((struct fstab *)NULL);
}
-int setfsent()
+int
+setfsent(void)
{
if (_fs_fp) {
rewind(_fs_fp);
}
void
-endfsent()
+endfsent(void)
{
if (_fs_fp) {
(void)endmntent(_fs_fp);
}
static
-void error(err)
- int err;
+void error(int err)
{
char *p;