#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
+#define DONT_ENCAPSULATE
+#include <sysfile.h>
#ifdef HAVE_STRING_H
#include <string.h>
/* Why is SYSV so retarded? */
/* We want emacs to realize that we are resuming */
+#ifdef SIGCONT
signal(SIGCONT, tell_emacs_to_resume);
+#endif
connect_type = make_connection (NULL, (u_short) 0, &s);
signal (SIGWINCH, pass_signal_to_emacs);
#endif
+#ifdef SIGCONT
/* We want emacs to realize that we are resuming */
signal (SIGCONT, tell_emacs_to_resume);
+#endif
}
fullpath[0] = '\0';
- if (filename[0] && filename[0] != '/')
- { /* relative filename */
+ if (filename[0] && filename[0] == '/')
+ {
+ /* Absolute (unix-style) pathname. Do nothing */
+ strcat (fullpath, filename);
+ }
+#ifdef __CYGWIN32__
+ else if (filename[0] && filename[0] == '\\' &&
+ filename[1] && filename[1] == '\\')
+ {
+ /* This path includes the server name (something like
+ "\\server\path"), so we assume it's absolute. Do nothing to
+ it. */
+ strcat (fullpath, filename);
+ }
+ else if (filename[0] &&
+ filename[1] && filename[1] == ':' &&
+ filename[2] && filename[2] == '\\')
+ {
+ /* Absolute pathname with drive letter. Convert "<drive>:"
+ to "//<drive>/". */
+ strcat (fullpath, "//");
+ strncat (fullpath, filename, 1);
+ strcat (fullpath, &filename[2]);
+ }
+#endif
+ else
+ {
+ /* Assume relative Unix style path. Get the current directory
+ and prepend it. FIXME: need to fix the case of DOS paths like
+ "\foo", where we need to get the current drive. */
+
strcat (fullpath, get_current_working_directory ());
len = strlen (fullpath);
; /* yep */
else
strcat (fullpath, "/"); /* nope, append trailing slash */
- } /* if */
-
- strcat (fullpath,filename);
-
+ /* Don't forget to add the filename! */
+ strcat (fullpath,filename);
+ }
} /* filename_expand */
/* Encase the string in quotes, escape all the backslashes and quotes
over = 1; \
} while (0)
-/* A strdup immitation. */
+/* A strdup imitation. */
static char *
my_strdup (CONST char *s)
{
- char *new = malloc (strlen (s) + 1);
- if (new)
- strcpy (new, s);
- return new;
+ char *new_s = (char *) malloc (strlen (s) + 1);
+ if (new_s)
+ strcpy (new_s, s);
+ return new_s;
}
int
if (read_line (s, buffer) == 0)
{
- fprintf (stderr, "%s: Could not establish Emacs procces id\n",
+ fprintf (stderr, "%s: Could not establish Emacs process id\n",
progname);
exit (1);
}
}
filename_expand (fullpath, argv[i]);
#ifdef INTERNET_DOMAIN_SOCKETS
- path = malloc (strlen (remotepath) + strlen (fullpath) + 1);
+ path = (char *) malloc (strlen (remotepath) + strlen (fullpath) + 1);
sprintf (path, "%s%s", remotepath, fullpath);
#else
path = my_strdup (fullpath);