]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix previous patch to match its commit message
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 29 Dec 2014 20:39:58 +0000 (12:39 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 29 Dec 2014 20:42:07 +0000 (12:42 -0800)
ChangeLog
doc/lispref/os.texi
etc/NEWS
lisp/dnd.el
lisp/gnus/message.el
lisp/gnus/nnvirtual.el
lisp/startup.el
src/sysdep.c

index 1fc7d66c88347f97b81cbf7b0c0f2c623cc0653d..6557ef9552f509dfc0b3cf2dfb5496ec351f50e0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 2014-12-29  Paul Eggert  <eggert@cs.ucla.edu>
 
        system-name's returned value can vary
+       Also, the system-name variable is now obsolete.
        Fixes Bug#19438.
        * doc/lispref/os.texi (System Environment):
        * etc/NEWS: Document this.
@@ -8,6 +9,7 @@
        (Displaying the current file name in the titlebar):
        * lisp/desktop.el (desktop-save-frameset):
        * lisp/dnd.el (dnd-get-local-file-uri):
+       * lisp/gnus/message.el (message-make-fqdn):
        * lisp/gnus/nnvirtual.el (nnvirtual-retrieve-headers)
        (nnvirtual-update-xref-header):
        * lisp/nxml/rng-uri.el (rng-uri-file-name-1):
        * src/xrdb.c (get_environ_db):
        * src/xterm.c (same_x_server):
        * src/xterm.c (x_term_init):
-       Prefer (system-name) to system-name.
+       Prefer (system-name) to system-name, and avoid naming
+       locals 'system-name'.
        * doc/misc/smtpmail.texi (Server workarounds): Fix grammar.
+       * lisp/startup.el (system-name): Now an obsolete variable.
        * src/editfns.c (cached_system_name): New static var.
        (init_and_cache_system_name): New function.
        (init_editfns, Fsystem_name): Use it.
        (syms_of_editfns): Initialize it and Vsystem_name to the same value.
-       * src/sysdep.c (init_system_name): Don't create a new string if
-       the current value is already correct.
+       * src/sysdep.c [HAVE_SOCKETS]: Don't include <sys/socket.h>, <netdb.h>.
+       (h_errno) [TRY_AGAIN && !HAVE_H_ERRNO]: Remove decl.
+       (init_system_name) [HAVE_SOCKETS]: Don't canonicalize the name.
+       Don't create a new string if the current value is already correct.
 
 2014-12-28  Paul Eggert  <eggert@cs.ucla.edu>
 
index 1300bc70d9a49561d09925cfb4c470cf59993b92..91bd19036f7f88e51eec2d21c258874991b8434f 100644 (file)
@@ -917,18 +917,6 @@ This function returns the name of the machine you are running on, as a
 string.
 @end defun
 
-  The symbol @code{system-name} is a variable as well as a function.  In
-fact, the function normally returns whatever value the variable
-@code{system-name} currently holds.  Thus, you can set the variable
-@code{system-name} in case Emacs is confused about the name of your
-system.  If you do not set the variable, the function updates
-the variable to the current system name; this behavior can be useful
-if your Emacs process has changed systems or if the system has changed
-names.
-
-The @code{system-name} variable is also useful for constructing frame titles
-(@pxref{Frame Titles}).
-
 @c FIXME seems like this section is not the best place for this option?
 @defopt mail-host-address
 If this variable is non-@code{nil}, it is used instead of
index e5c988beaadcbe32805f0a0554ad2b0802b82c3c..ae0cb70c83362b662fa7bc2f5267572083ec39de 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -542,7 +542,9 @@ optional repeat-count argument.
 ** Function `sort' can deal with vectors.
 
 ** Function `system-name' now returns an updated value if the current
-system's name has changed, or if the Emacs process has changed systems.
+system's name has changed or if the Emacs process has changed systems,
+and to avoid long waits it no longer consults DNS to canonicalize the
+name.  The variable `system-name' is now obsolete.
 
 ---
 ** New utilities in subr-x.el:
index 2b68b025ac16fb58210218b2dedf432bb4765c96..3fda471497f7c0e351e1180532db5426728aaaa8 100644 (file)
@@ -122,17 +122,17 @@ Return nil if URI is not a local file."
 
   ;; The hostname may be our hostname, in that case, convert to a local
   ;; file.  Otherwise return nil.  TODO:  How about an IP-address as hostname?
-  (let ((system-name (system-name)))
+  (let ((sysname (system-name)))
     (let ((hostname (when (string-match "^file://\\([^/]*\\)" uri)
                      (downcase (match-string 1 uri))))
-         (system-name-no-dot
-          (downcase (if (string-match "^[^\\.]+" system-name)
-                        (match-string 0 system-name)
-                      system-name))))
+         (sysname-no-dot
+          (downcase (if (string-match "^[^\\.]+" sysname)
+                        (match-string 0 sysname)
+                      sysname))))
       (when (and hostname
                 (or (string-equal "localhost" hostname)
-                    (string-equal (downcase system-name) hostname)
-                    (string-equal system-name-no-dot hostname)))
+                    (string-equal (downcase sysname) hostname)
+                    (string-equal sysname-no-dot hostname)))
        (concat "file://" (substring uri (+ 7 (length hostname))))))))
 
 (defsubst dnd-unescape-uri (uri)
index d58a2922217dee9ae834447643f92f2871244e16..ee5d824a8526f36be1d874b0e2038cffb3ce78be 100644 (file)
@@ -5849,7 +5849,7 @@ give as trustworthy answer as possible."
 
 (defun message-make-fqdn ()
   "Return user's fully qualified domain name."
-  (let* ((system-name (system-name))
+  (let* ((sysname (system-name))
         (user-mail (message-user-mail-address))
         (user-domain
          (if (and user-mail
@@ -5863,10 +5863,10 @@ give as trustworthy answer as possible."
           (not (string-match message-bogus-system-names message-user-fqdn)))
       ;; `message-user-fqdn' seems to be valid
       message-user-fqdn)
-     ((and (string-match message-valid-fqdn-regexp system-name)
-          (not (string-match message-bogus-system-names system-name)))
+     ((and (string-match message-valid-fqdn-regexp sysname)
+          (not (string-match message-bogus-system-names sysname)))
       ;; `system-name' returned the right result.
-      system-name)
+      sysname)
      ;; Try `mail-host-address'.
      ((and (boundp 'mail-host-address)
           (stringp mail-host-address)
@@ -5881,7 +5881,7 @@ give as trustworthy answer as possible."
       user-domain)
      ;; Default to this bogus thing.
      (t
-      (concat system-name
+      (concat sysname
              ".i-did-not-set--mail-host-address--so-tickle-me")))))
 
 (defun message-make-domain ()
index d13b492ddb3e4a87a5900e6833638e2ac4d4f642..61bf5560e2e0dab55b7af67d5eb14943abf05d63 100644 (file)
@@ -99,7 +99,7 @@ component group will show up when you enter the virtual group.")
        (let ((vbuf (nnheader-set-temp-buffer
                     (get-buffer-create " *virtual headers*")))
              (carticles (nnvirtual-partition-sequence articles))
-             (system-name (system-name))
+             (sysname (system-name))
              cgroup carticle article result prefix)
          (while carticles
            (setq cgroup (caar carticles))
@@ -151,7 +151,7 @@ component group will show up when you enter the virtual group.")
                  ;; and clean up the xrefs.
                  (princ article nntp-server-buffer)
                  (nnvirtual-update-xref-header cgroup carticle
-                                               prefix (system-name))
+                                               prefix sysname)
                  (forward-line 1))
                )
 
@@ -378,7 +378,7 @@ component group will show up when you enter the virtual group.")
       (mapc 'nnheader-insert-nov headers))))
 
 
-(defun nnvirtual-update-xref-header (group article prefix system-name)
+(defun nnvirtual-update-xref-header (group article prefix sysname)
   "Edit current NOV header in current buffer to have an xref to the component group, and also server prefix any existing xref lines."
   ;; Move to beginning of Xref field, creating a slot if needed.
   (beginning-of-line)
@@ -393,7 +393,7 @@ component group will show up when you enter the virtual group.")
     (forward-char -1)
     (delete-char 1))
 
-  (insert "Xref: " (system-name) " " group ":")
+  (insert "Xref: " sysname " " group ":")
   (princ article (current-buffer))
   (insert " ")
 
index 8e981bbc64aacf3267f6bfd59dc348d5f9bb8599..0c5e66a2e6e6096513b26f53b05d521c6c25944c 100644 (file)
@@ -358,6 +358,8 @@ this variable usefully is to set it while building and dumping Emacs."
   :set (lambda (_variable _value)
          (error "Customizing `site-run-file' does not work")))
 
+(make-obsolete-variable 'system-name "use (system-name) instead" "25.1")
+
 (defcustom mail-host-address nil
   "Name of this machine, for purposes of naming users.
 If non-nil, Emacs uses this instead of `system-name' when constructing
index b4a9be1eb1afc9e9994e8a54ba53911ca496a40f..013c86b859dd88d2d16ecdb14a61b558b5c786f2 100644 (file)
@@ -1406,17 +1406,6 @@ setup_pty (int fd)
 }
 #endif /* HAVE_PTYS */
 \f
-#ifdef HAVE_SOCKETS
-#include <sys/socket.h>
-#include <netdb.h>
-#endif /* HAVE_SOCKETS */
-
-#ifdef TRY_AGAIN
-#ifndef HAVE_H_ERRNO
-extern int h_errno;
-#endif
-#endif /* TRY_AGAIN */
-
 void
 init_system_name (void)
 {
@@ -1447,101 +1436,6 @@ init_system_name (void)
       hostname = hostname_alloc = xpalloc (hostname_alloc, &hostname_size, 1,
                                           min (PTRDIFF_MAX, SIZE_MAX), 1);
     }
-#ifdef HAVE_SOCKETS
-  /* Turn the hostname into the official, fully-qualified hostname.
-     Don't do this if we're going to dump; this can confuse system
-     libraries on some machines and make the dumped emacs core dump. */
-#ifndef CANNOT_DUMP
-  if (initialized)
-#endif /* not CANNOT_DUMP */
-    if (! strchr (hostname, '.'))
-      {
-       int count;
-#ifdef HAVE_GETADDRINFO
-        struct addrinfo *res;
-        struct addrinfo hints;
-        int ret;
-
-        memset (&hints, 0, sizeof (hints));
-        hints.ai_socktype = SOCK_STREAM;
-        hints.ai_flags = AI_CANONNAME;
-
-       for (count = 0;; count++)
-         {
-            if ((ret = getaddrinfo (hostname, NULL, &hints, &res)) == 0
-                || ret != EAI_AGAIN)
-              break;
-
-            if (count >= 5)
-             break;
-           Fsleep_for (make_number (1), Qnil);
-         }
-
-        if (ret == 0)
-          {
-            struct addrinfo *it = res;
-            while (it)
-              {
-                char *fqdn = it->ai_canonname;
-                if (fqdn && strchr (fqdn, '.')
-                    && strcmp (fqdn, "localhost.localdomain") != 0)
-                  break;
-                it = it->ai_next;
-              }
-            if (it)
-              {
-               ptrdiff_t len = strlen (it->ai_canonname);
-               if (hostname_size <= len)
-                 {
-                   hostname_size = len + 1;
-                   hostname = hostname_alloc = xrealloc (hostname_alloc,
-                                                         hostname_size);
-                 }
-                strcpy (hostname, it->ai_canonname);
-              }
-            freeaddrinfo (res);
-          }
-#else /* !HAVE_GETADDRINFO */
-        struct hostent *hp;
-       for (count = 0;; count++)
-         {
-
-#ifdef TRY_AGAIN
-           h_errno = 0;
-#endif
-           hp = gethostbyname (hostname);
-#ifdef TRY_AGAIN
-           if (! (hp == 0 && h_errno == TRY_AGAIN))
-#endif
-
-             break;
-
-           if (count >= 5)
-             break;
-           Fsleep_for (make_number (1), Qnil);
-         }
-
-       if (hp)
-         {
-           char *fqdn = (char *) hp->h_name;
-
-           if (!strchr (fqdn, '.'))
-             {
-               /* We still don't have a fully qualified domain name.
-                  Try to find one in the list of alternate names */
-               char **alias = hp->h_aliases;
-               while (*alias
-                      && (!strchr (*alias, '.')
-                          || !strcmp (*alias, "localhost.localdomain")))
-                 alias++;
-               if (*alias)
-                 fqdn = *alias;
-             }
-           hostname = fqdn;
-         }
-#endif /* !HAVE_GETADDRINFO */
-      }
-#endif /* HAVE_SOCKETS */
 #endif /* HAVE_GETHOSTNAME */
   char *p;
   for (p = hostname; *p; p++)