+ /* TODO: Check for cygdrive registry setting,
+ * and then use CW_GET_CYGDRIVE_INFO
+ */
+ if (!strcmp(pathname, "/cygdrive")) {
+ char user[260];
+ char system[260];
+ char user_flags[260];
+ char system_flags[260];
+
+ cygwin_internal (CW_GET_CYGDRIVE_INFO, user, system, user_flags,
+ system_flags);
+
+ if (strlen(user) > 0) {
+ sprintf(flags, "%s,cygdrive,%s", user_flags, user);
+ } else {
+ sprintf(flags, "%s,cygdrive,%s", system_flags, system);
+ }
+
+ ST(0) = sv_2mortal(newSVpv(flags, 0));
+ XSRETURN(1);
+
+ } else {
+ struct mntent *mnt;
+ setmntent (0, 0);
+ while ((mnt = getmntent (0))) {
+ if (!strcmp(pathname, mnt->mnt_dir)) {
+ strcpy(flags, mnt->mnt_type);
+ if (strlen(mnt->mnt_opts) > 0) {
+ strcat(flags, ",");
+ strcat(flags, mnt->mnt_opts);
+ }
+ break;
+ }
+ }
+ endmntent (0);
+ ST(0) = sv_2mortal(newSVpv(flags, 0));
+ XSRETURN(1);
+ }