SCCS-vsn: usr.bin/f77/libU77/getcwd_.c 1.3
#include <sys/stat.h>
#include <sys/dir.h>
#include <sys/stat.h>
#include <sys/dir.h>
+static char slash[] = "/";
static char dot[] = ".";
static char dotdot[] = "..";
static char name[128];
static char dot[] = ".";
static char dotdot[] = "..";
static char name[128];
char *namep = &name[(sizeof name)-1];
*namep = '\0';
char *namep = &name[(sizeof name)-1];
*namep = '\0';
rdev = d.st_dev;
rino = d.st_ino;
for (;;)
rdev = d.st_dev;
rino = d.st_ino;
for (;;)
stat(dot, &d);
if (d.st_ino == rino && d.st_dev == rdev)
{
stat(dot, &d);
if (d.st_ino == rino && d.st_dev == rdev)
{
+ if (*namep == '\0') /* rootdir is a special case */
+ namep = prepend(namep, slash);
chdir(namep);
return(namep);
}
chdir(namep);
return(namep);
}
if(d.st_ino == dd.st_ino)
{
close(fd);
if(d.st_ino == dd.st_ino)
{
close(fd);
+ if (*namep == '\0') /* root is a special case */
+ namep = prepend(namep, slash);
chdir(namep);
return(namep);
}
chdir(namep);
return(namep);
}
stat(dir.d_name, &dd);
} while(dd.st_ino != d.st_ino || dd.st_dev != d.st_dev);
close(fd);
stat(dir.d_name, &dd);
} while(dd.st_ino != d.st_ino || dd.st_dev != d.st_dev);
close(fd);
- namep = prepend(prepend(namep, dir.d_name), "/");
+ namep = prepend(prepend(namep, dir.d_name), slash);
-char id_getcwd[] = "@(#)getcwd_.c 1.2";
+char id_getcwd[] = "@(#)getcwd_.c 1.3";
* Get pathname of current working directory.
*
* calling sequence:
* Get pathname of current working directory.
*
* calling sequence: