+2007-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * emacsclient.c (DIRECTORY_SEP, IS_DIRECTORY_SEP, IS_DEVICE_SEP)
+ (IS_ANY_SEP): Only define if !defined(HAVE_GET_CURRENT_DIR_NAME).
+ (main_argc): Remove.
+ (strprefix): Use strncmp.
+
2007-09-20 Jason Rumney <jasonr@gnu.org>
* emacsclient.c (main) [SIGSTOP]: Change conditional from WINDOWSNT.
#include <signal.h>
#include <errno.h>
-/* From lisp.h */
-#ifndef DIRECTORY_SEP
-#define DIRECTORY_SEP '/'
-#endif
-#ifndef IS_DIRECTORY_SEP
-#define IS_DIRECTORY_SEP(_c_) ((_c_) == DIRECTORY_SEP)
-#endif
-#ifndef IS_DEVICE_SEP
-#ifndef DEVICE_SEP
-#define IS_DEVICE_SEP(_c_) 0
-#else
-#define IS_DEVICE_SEP(_c_) ((_c_) == DEVICE_SEP)
-#endif
-#endif
-#ifndef IS_ANY_SEP
-#define IS_ANY_SEP(_c_) (IS_DIRECTORY_SEP (_c_))
-#endif
-
-
\f
char *getenv (), *getwd ();
char *(getcwd) ();
/* Name used to invoke this program. */
char *progname;
-/* The first argument to main. */
-int main_argc;
-
/* The second argument to main. */
char **main_argv;
/* From sysdep.c */
#if !defined (HAVE_GET_CURRENT_DIR_NAME) || defined (BROKEN_GET_CURRENT_DIR_NAME)
+/* From lisp.h */
+#ifndef DIRECTORY_SEP
+#define DIRECTORY_SEP '/'
+#endif
+#ifndef IS_DIRECTORY_SEP
+#define IS_DIRECTORY_SEP(_c_) ((_c_) == DIRECTORY_SEP)
+#endif
+#ifndef IS_DEVICE_SEP
+#ifndef DEVICE_SEP
+#define IS_DEVICE_SEP(_c_) 0
+#else
+#define IS_DEVICE_SEP(_c_) ((_c_) == DEVICE_SEP)
+#endif
+#endif
+#ifndef IS_ANY_SEP
+#define IS_ANY_SEP(_c_) (IS_DIRECTORY_SEP (_c_))
+#endif
+
+
/* Return the current working directory. Returns NULL on errors.
Any other returned value must be freed with free. This is used
only when get_current_dir_name is not defined on the system. */
}
/*
- execvp wrapper for Windows. Quotes arguments with embedded spaces.
+ execvp wrapper for Windows. Quotes arguments with embedded spaces.
This is necessary due to the broken implementation of exec* routines in
the Microsoft libraries: they concatenate the arguments together without
/*
Try to run a different command, or --if no alternate editor is
defined-- exit with an errorcode.
+ Uses argv, but gets it from the global variable main_argv.
*/
void
fail (void)
int argc;
char **argv;
{
- main_argc = argc;
main_argv = argv;
progname = argv[0];
message (TRUE, "%s: Sorry, the Emacs server is supported only\n"
static int
strprefix (char *prefix, char *string)
{
- int i;
- if (! prefix)
- return 1;
-
- if (!string)
- return 0;
-
- for (i = 0; prefix[i]; i++)
- if (!string[i] || string[i] != prefix[i])
- return 0;
- return 1;
+ return !strncmp (prefix, string, strlen (prefix));
}
int sock_status = 0;
int default_sock = !socket_name;
int saved_errno = 0;
-
char *server_name = "server";
if (socket_name && !index (socket_name, '/') && !index (socket_name, '\\'))
char *cwd, *str;
char string[BUFSIZ+1];
- main_argc = argc;
main_argv = argv;
progname = argv[0];