]> code.delx.au - gnu-emacs/commitdiff
-
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 22 Mar 2016 18:04:36 +0000 (11:04 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 22 Mar 2016 18:04:36 +0000 (11:04 -0700)
1  2 
admin/release-process
lisp/mail/rmail.el
lisp/progmodes/cc-defs.el
lisp/simple.el
src/lisp.h
test/lisp/net/tramp-tests.el

diff --combined admin/release-process
index f378662adc0d25bbdcae945ea2cc394a1e950595,3f75ff52ca49cfb91fad927e619ee9245ef03f48..2668ea3b445aed3af966a5e8270012742ec30c2a
@@@ -44,10 -44,9 +44,10 @@@ branches merges bugfix commits from th
  Emacs uses the "blocking bug(s)" feature of Debbugs for bugs need to
  be addressed in the next release.
  
 -Currently, bug#19759 is the tracking bug for release of 25.1.  Say
 -bug#123 needs to be fixed for Emacs 25.1.  Send a message to
 -control@debbugs.gnu.org that says:
 +Currently, bug#19759 is the tracking bug for release of 25.1 and
 +bug#21966 is the tracking bug for release of 25.2.  Say bug#123 needs
 +to be fixed for Emacs 25.1.  Send a message to control@debbugs.gnu.org
 +that says:
  
     block 19759 by 123
  
@@@ -238,7 -237,7 +238,7 @@@ TUTORIAL.z
  
  ** Check the manual.
  
- abbrevs.texi
+ abbrevs.texi          Steve Byrne
  ack.texi
  anti.texi
  arevert-xtra.texi
@@@ -293,7 -292,7 +293,7 @@@ xresources.tex
  
  ** Check the Lisp manual.
  
- abbrevs.texi
+ abbrevs.texi          Steve Byrne
  anti.texi
  back.texi
  backups.texi
diff --combined lisp/mail/rmail.el
index 5c2331aea48c8a26169564dbabf03df93eaf86b5,10ba5b380312646efd55d32e50846c1e36b34d5d..734155e217d9118718b47fd84f7b374fd16dcecd
@@@ -40,8 -40,6 +40,8 @@@
  (require 'mail-utils)
  (require 'rfc2047)
  
 +(require 'rmail-loaddefs)
 +
  (declare-function compilation--message->loc "compile" (cl-x) t)
  (declare-function epa--find-coding-system-for-mime-charset "epa" (mime-charset))
  
@@@ -163,7 -161,7 +163,7 @@@ its character representation and its di
  (put 'rmail-spool-directory 'standard-value
       '((cond ((file-exists-p "/var/mail") "/var/mail/")
             ((file-exists-p "/var/spool/mail") "/var/spool/mail/")
 -           ((memq system-type '(hpux usg-unix-v irix)) "/usr/mail/")
 +           ((memq system-type '(hpux usg-unix-v)) "/usr/mail/")
             (t "/usr/spool/mail/"))))
  
  ;;;###autoload
         "/var/mail/")
        ;; Many GNU/Linux systems use this name.
        ((file-exists-p "/var/spool/mail") "/var/spool/mail/")
 -      ((memq system-type '(hpux usg-unix-v irix)) "/usr/mail/")
 +      ((memq system-type '(hpux usg-unix-v)) "/usr/mail/")
        (t "/usr/spool/mail/")))
    "Name of directory used by system mailer for delivering new mail.
  Its name should end with a slash."
@@@ -241,7 -239,6 +241,7 @@@ please report it with \\[report-emacs-b
  (declare-function mail-dont-reply-to "mail-utils" (destinations))
  (declare-function rmail-update-summary "rmailsum" (&rest ignore))
  (declare-function rmail-mime-toggle-hidden "rmailmm" ())
 +(declare-function rmail-mime-entity-truncated "rmailmm" (entity))
  
  (defun rmail-probe (prog)
    "Determine what flavor of movemail PROG is.
@@@ -4585,11 -4582,12 +4585,13 @@@ Argument MIME is non-nil if this is a m
      (list armor-start (- (point-max) after-end) mime
            armor-end-regexp)))
  
+ (declare-function rmail-mime-entity-truncated "rmailmm" (entity))
  ;; Should this have a key-binding, or be in a menu?
  ;; There doesn't really seem to be an appropriate menu.
  ;; Eg the edit command is not in a menu either.
  
 +(defvar rmail-mime-render-html-function) ; defcustom in rmailmm
  (defun rmail-epa-decrypt ()
    "Decrypt GnuPG or OpenPGP armors in current message."
    (interactive)
        (setq buffer-file-coding-system rmail-message-encoding))))
  (add-hook 'after-save-hook 'rmail-after-save-hook)
  
 -\f
 -;;; Start of automatically extracted autoloads.
 -\f
 -;;;### (autoloads nil "rmailedit" "rmailedit.el" "03eb8c36b3c57d58eecedb9eeffa623e")
 -;;; Generated autoloads from rmailedit.el
 -
 -(autoload 'rmail-edit-current-message "rmailedit" "\
 -Edit the contents of this message.
 -
 -\(fn)" t nil)
 -
 -;;;***
 -\f
 -;;;### (autoloads nil "rmailkwd" "rmailkwd.el" "4e1b251929961e2b9d3b126301d697d0")
 -;;; Generated autoloads from rmailkwd.el
 -
 -(autoload 'rmail-add-label "rmailkwd" "\
 -Add LABEL to labels associated with current RMAIL message.
 -Completes (see `rmail-read-label') over known labels when reading.
 -LABEL may be a symbol or string.  Only one label is allowed.
 -
 -\(fn LABEL)" t nil)
 -
 -(autoload 'rmail-kill-label "rmailkwd" "\
 -Remove LABEL from labels associated with current RMAIL message.
 -Completes (see `rmail-read-label') over known labels when reading.
 -LABEL may be a symbol or string.  Only one label is allowed.
 -
 -\(fn LABEL)" t nil)
 -
 -(autoload 'rmail-read-label "rmailkwd" "\
 -Read a label with completion, prompting with PROMPT.
 -Completions are chosen from `rmail-label-obarray'.  The default
 -is `rmail-last-label', if that is non-nil.  Updates `rmail-last-label'
 -according to the choice made, and returns a symbol.
 -
 -\(fn PROMPT)" nil nil)
 -
 -(autoload 'rmail-previous-labeled-message "rmailkwd" "\
 -Show previous message with one of the labels LABELS.
 -LABELS should be a comma-separated list of label names.
 -If LABELS is empty, the last set of labels specified is used.
 -With prefix argument N moves backward N messages with these labels.
 -
 -\(fn N LABELS)" t nil)
 -
 -(autoload 'rmail-next-labeled-message "rmailkwd" "\
 -Show next message with one of the labels LABELS.
 -LABELS should be a comma-separated list of label names.
 -If LABELS is empty, the last set of labels specified is used.
 -With prefix argument N moves forward N messages with these labels.
 -
 -\(fn N LABELS)" t nil)
 -
 -;;;***
 -\f
 -;;;### (autoloads nil "rmailmm" "rmailmm.el" "7ab6ab96dfdeeec6bc8f4620295b7119")
 -;;; Generated autoloads from rmailmm.el
 -
 -(autoload 'rmail-mime "rmailmm" "\
 -Toggle the display of a MIME message.
 -
 -The actual behavior depends on the value of `rmail-enable-mime'.
 -
 -If `rmail-enable-mime' is non-nil (the default), this command toggles
 -the display of a MIME message between decoded presentation form and
 -raw data.  With optional prefix argument ARG, it toggles the display only
 -of the MIME entity at point, if there is one.  The optional argument
 -STATE forces a particular display state, rather than toggling.
 -`raw' forces raw mode, any other non-nil value forces decoded mode.
 -
 -If `rmail-enable-mime' is nil, this creates a temporary \"*RMAIL*\"
 -buffer holding a decoded copy of the message. Inline content-types are
 -handled according to `rmail-mime-media-type-handlers-alist'.
 -By default, this displays text and multipart messages, and offers to
 -download attachments as specified by `rmail-mime-attachment-dirs-alist'.
 -The arguments ARG and STATE have no effect in this case.
 -
 -\(fn &optional ARG STATE)" t nil)
 -
 -;;;***
 -\f
 -;;;### (autoloads nil "rmailmsc" "rmailmsc.el" "471c370ff9f183806c8d749961ec9d79")
 -;;; Generated autoloads from rmailmsc.el
 -
 -(autoload 'set-rmail-inbox-list "rmailmsc" "\
 -Set the inbox list of the current RMAIL file to FILE-NAME.
 -You can specify one file name, or several names separated by commas.
 -If FILE-NAME is empty, remove any existing inbox list.
 -
 -This applies only to the current session.
 -
 -\(fn FILE-NAME)" t nil)
 -
 -;;;***
 -\f
 -;;;### (autoloads nil "rmailsort" "rmailsort.el" "2c8e39f7bae6fcc465a83ebccd46c8a4")
 -;;; Generated autoloads from rmailsort.el
 -
 -(autoload 'rmail-sort-by-date "rmailsort" "\
 -Sort messages of current Rmail buffer by \"Date\" header.
 -If prefix argument REVERSE is non-nil, sorts in reverse order.
 -
 -\(fn REVERSE)" t nil)
 -
 -(autoload 'rmail-sort-by-subject "rmailsort" "\
 -Sort messages of current Rmail buffer by \"Subject\" header.
 -Ignores any \"Re: \" prefix.  If prefix argument REVERSE is
 -non-nil, sorts in reverse order.
 -
 -\(fn REVERSE)" t nil)
 -
 -(autoload 'rmail-sort-by-author "rmailsort" "\
 -Sort messages of current Rmail buffer by author.
 -This uses either the \"From\" or \"Sender\" header, downcased.
 -If prefix argument REVERSE is non-nil, sorts in reverse order.
 -
 -\(fn REVERSE)" t nil)
 -
 -(autoload 'rmail-sort-by-recipient "rmailsort" "\
 -Sort messages of current Rmail buffer by recipient.
 -This uses either the \"To\" or \"Apparently-To\" header, downcased.
 -If prefix argument REVERSE is non-nil, sorts in reverse order.
 -
 -\(fn REVERSE)" t nil)
 -
 -(autoload 'rmail-sort-by-correspondent "rmailsort" "\
 -Sort messages of current Rmail buffer by other correspondent.
 -This uses either the \"From\", \"Sender\", \"To\", or
 -\"Apparently-To\" header, downcased.  Uses the first header not
 -excluded by `mail-dont-reply-to-names'.  If prefix argument
 -REVERSE is non-nil, sorts in reverse order.
 -
 -\(fn REVERSE)" t nil)
 -
 -(autoload 'rmail-sort-by-lines "rmailsort" "\
 -Sort messages of current Rmail buffer by the number of lines.
 -If prefix argument REVERSE is non-nil, sorts in reverse order.
 -
 -\(fn REVERSE)" t nil)
 -
 -(autoload 'rmail-sort-by-labels "rmailsort" "\
 -Sort messages of current Rmail buffer by labels.
 -LABELS is a comma-separated list of labels.  The order of these
 -labels specifies the order of messages: messages with the first
 -label come first, messages with the second label come second, and
 -so on.  Messages that have none of these labels come last.
 -If prefix argument REVERSE is non-nil, sorts in reverse order.
 -
 -\(fn REVERSE LABELS)" t nil)
 -
 -;;;***
 -\f
 -;;;### (autoloads nil "rmailsum" "rmailsum.el" "8205e67c8188aa5c01715e79e10667c1")
 -;;; Generated autoloads from rmailsum.el
 -
 -(autoload 'rmail-summary "rmailsum" "\
 -Display a summary of all messages, one line per message.
 -
 -\(fn)" t nil)
 -
 -(autoload 'rmail-summary-by-labels "rmailsum" "\
 -Display a summary of all messages with one or more LABELS.
 -LABELS should be a string containing the desired labels, separated by commas.
 -
 -\(fn LABELS)" t nil)
 -
 -(autoload 'rmail-summary-by-recipients "rmailsum" "\
 -Display a summary of all messages with the given RECIPIENTS.
 -Normally checks the To, From and Cc fields of headers;
 -but if PRIMARY-ONLY is non-nil (prefix arg given),
 - only look in the To and From fields.
 -RECIPIENTS is a regular expression.
 -
 -\(fn RECIPIENTS &optional PRIMARY-ONLY)" t nil)
 -
 -(autoload 'rmail-summary-by-regexp "rmailsum" "\
 -Display a summary of all messages according to regexp REGEXP.
 -If the regular expression is found in the header of the message
 -\(including in the date and other lines, as well as the subject line),
 -Emacs will list the message in the summary.
 -
 -\(fn REGEXP)" t nil)
 -
 -(autoload 'rmail-summary-by-topic "rmailsum" "\
 -Display a summary of all messages with the given SUBJECT.
 -Normally checks just the Subject field of headers; but with prefix
 -argument WHOLE-MESSAGE is non-nil, looks in the whole message.
 -SUBJECT is a regular expression.
 -
 -\(fn SUBJECT &optional WHOLE-MESSAGE)" t nil)
 -
 -(autoload 'rmail-summary-by-senders "rmailsum" "\
 -Display a summary of all messages whose \"From\" field matches SENDERS.
 -SENDERS is a regular expression.
 -
 -\(fn SENDERS)" t nil)
 -
 -;;;***
 -\f
 -;;;### (autoloads nil "undigest" "undigest.el" "20561f083496eb113fa9e501902bfcc3")
 -;;; Generated autoloads from undigest.el
 -
 -(autoload 'undigestify-rmail-message "undigest" "\
 -Break up a digest message into its constituent messages.
 -Leaves original message, deleted, before the undigestified messages.
 -
 -\(fn)" t nil)
 -
 -(autoload 'unforward-rmail-message "undigest" "\
 -Extract a forwarded message from the containing message.
 -This puts the forwarded message into a separate rmail message following
 -the containing message.  This command is only useful when messages are
 -forwarded with `rmail-enable-mime-composing' set to nil.
 -
 -\(fn)" t nil)
 -
 -;;;***
 -\f
 -;;; End of automatically extracted autoloads.
 -
  
  (provide 'rmail)
  
index 7365f695f3b92e9d303b68cffcbc6d0632d675b1,f458904c87af68a115b3934ee74ccbeae6f463f1..ba15d7f13e0bed78dd54d554bfadb68dcf2b90d8
@@@ -206,7 -206,7 +206,7 @@@ This variant works around bugs in `eval
  (eval-and-compile
    (defmacro c--macroexpand-all (form &optional environment)
      ;; Macro to smooth out the renaming of `cl-macroexpand-all' in Emacs 24.3.
 -    (if (eq c--mapcan-status 'cl-mapcan)
 +    (if (fboundp 'macroexpand-all)
        `(macroexpand-all ,form ,environment)
        `(cl-macroexpand-all ,form ,environment)))
  
@@@ -493,21 -493,19 +493,21 @@@ must not be within a `c-save-buffer-sta
  wouldn't be able to undo them.
  
  The return value is the value of the last form in BODY."
 -  `(let* ((modified (buffer-modified-p)) (buffer-undo-list t)
 -        (inhibit-read-only t) (inhibit-point-motion-hooks t)
 -        before-change-functions after-change-functions
 -        deactivate-mark
 -        buffer-file-name buffer-file-truename ; Prevent primitives checking
 -                                              ; for file modification
 -        ,@varlist)
 -     (unwind-protect
 -       (progn ,@body)
 -       (and (not modified)
 -          (buffer-modified-p)
 -          (set-buffer-modified-p nil)))))
 -(put 'c-save-buffer-state 'lisp-indent-function 1)
 +  (declare (debug t) (indent 1))
 +  (if (fboundp 'with-silent-modifications)
 +      `(with-silent-modifications (let* ,varlist ,@body))
 +    `(let* ((modified (buffer-modified-p)) (buffer-undo-list t)
 +          (inhibit-read-only t) (inhibit-point-motion-hooks t)
 +          before-change-functions after-change-functions
 +          deactivate-mark
 +          buffer-file-name buffer-file-truename ; Prevent primitives checking
 +                                                ; for file modification
 +          ,@varlist)
 +       (unwind-protect
 +         (progn ,@body)
 +       (and (not modified)
 +            (buffer-modified-p)
 +            (set-buffer-modified-p nil))))))
  
  (defmacro c-tentative-buffer-changes (&rest body)
    "Eval BODY and optionally restore the buffer contents to the state it
@@@ -1409,7 -1407,7 +1409,7 @@@ been put there by c-put-char-property
         (c-state-cache-good-pos c-state-cache-good-pos)
         ;(c-state-nonlit-pos-cache (copy-tree c-state-nonlit-pos-cache))
         ;(c-state-nonlit-pos-cache-limit c-state-nonlit-pos-cache-limit)
-        ;(c-state-semi-nonlit-pos-cache (copy-treec c-state-semi-nonlit-pos-cache))
+        ;(c-state-semi-nonlit-pos-cache (copy-tree c-state-semi-nonlit-pos-cache))
         ;(c-state-semi-nonlit-pos-cache-limit c-state-semi-nonlit-pos-cache)
         (c-state-brace-pair-desert (copy-tree c-state-brace-pair-desert))
         (c-state-point-min c-state-point-min)
diff --combined lisp/simple.el
index 1701eb0e0f31e95a9410b56f6c505d31e2e2d692,2a81ee745cb2c919e0aa16959f8a87ee6a158468..971f60067324800c71215e3d36e985ad847a7ba7
@@@ -408,15 -408,19 +408,19 @@@ A non-nil INTERACTIVE argument means t
           (last-command-event ?\n)
           ;; Don't auto-fill if we have a numeric argument.
           (auto-fill-function (if arg nil auto-fill-function))
+          (arg (prefix-numeric-value arg))
           (postproc
            ;; Do the rest in post-self-insert-hook, because we want to do it
            ;; *before* other functions on that hook.
            (lambda ()
-             (cl-assert (eq ?\n (char-before)))
+             ;; We are not going to insert any newlines if arg is
+             ;; non-positive.
+             (or (and (numberp arg) (<= arg 0))
+                 (cl-assert (eq ?\n (char-before))))
              ;; Mark the newline(s) `hard'.
              (if use-hard-newlines
                  (set-hard-newline-properties
-                  (- (point) (prefix-numeric-value arg)) (point)))
+                  (- (point) arg) (point)))
              ;; If the newline leaves the previous line blank, and we
              ;; have a left margin, delete that from the blank line.
              (save-excursion
                  (move-to-left-margin nil t)))))
      (unwind-protect
          (if (not interactive)
-         ;; FIXME: For non-interactive uses, many calls actually just want
-         ;; (insert "\n"), so maybe we should do just that, so as to avoid
-         ;; the risk of filling or running abbrevs unexpectedly.
-         (let ((post-self-insert-hook (list postproc)))
-           (self-insert-command (prefix-numeric-value arg)))
-       (unwind-protect
-           (progn
-             (add-hook 'post-self-insert-hook postproc nil t)
-             (self-insert-command (prefix-numeric-value arg)))
-         ;; We first used let-binding to protect the hook, but that was naive
-         ;; since add-hook affects the symbol-default value of the variable,
-         ;; whereas the let-binding might only protect the buffer-local value.
-         (remove-hook 'post-self-insert-hook postproc t)))
+             ;; FIXME: For non-interactive uses, many calls actually
+             ;; just want (insert "\n"), so maybe we should do just
+             ;; that, so as to avoid the risk of filling or running
+             ;; abbrevs unexpectedly.
+             (let ((post-self-insert-hook (list postproc)))
+               (self-insert-command arg))
+           (unwind-protect
+               (progn
+                 (add-hook 'post-self-insert-hook postproc nil t)
+                 (self-insert-command arg))
+             ;; We first used let-binding to protect the hook, but that
+             ;; was naive since add-hook affects the symbol-default
+             ;; value of the variable, whereas the let-binding might
+             ;; only protect the buffer-local value.
+             (remove-hook 'post-self-insert-hook postproc t)))
        (cl-assert (not (member postproc post-self-insert-hook)))
        (cl-assert (not (member postproc (default-value 'post-self-insert-hook))))))
    nil)
@@@ -3748,13 -3754,8 +3754,13 @@@ support pty association, if PROGRAM is 
  (defun process-menu-delete-process ()
    "Kill process at point in a `list-processes' buffer."
    (interactive)
 -  (delete-process (tabulated-list-get-id))
 -  (revert-buffer))
 +  (let ((pos (point)))
 +    (delete-process (tabulated-list-get-id))
 +    (revert-buffer)
 +    (goto-char (min pos (point-max)))
 +    (if (eobp)
 +        (forward-line -1)
 +      (beginning-of-line))))
  
  (defun list-processes--refresh ()
    "Recompute the list of processes for the Process List buffer.
diff --combined src/lisp.h
index d0abb24b6858279fd5e19fc99f9a99951e622e8b,6a98adbda9c630fd01afafb29c13cc2c838af4d9..e606ffa0259e8894b4a07955bf65a74b8f2d39e8
@@@ -600,9 -600,7 +600,9 @@@ extern _Noreturn Lisp_Object wrong_type
  extern _Noreturn void wrong_choice (Lisp_Object, Lisp_Object);
  
  /* Defined in emacs.c.  */
 +#ifdef DOUG_LEA_MALLOC
  extern bool might_dump;
 +#endif
  /* True means Emacs has already been initialized.
     Used during startup to detect startup of dumped Emacs.  */
  extern bool initialized;
@@@ -1768,7 -1766,8 +1768,8 @@@ CHAR_TABLE_EXTRA_SLOTS (struct Lisp_Cha
  
  /* Make sure that sub char-table contents slot is where we think it is.  */
  verify (offsetof (struct Lisp_Sub_Char_Table, contents)
-       == offsetof (struct Lisp_Vector, contents[SUB_CHAR_TABLE_OFFSET]));
+       == (offsetof (struct Lisp_Vector, contents)
+           + SUB_CHAR_TABLE_OFFSET * sizeof (Lisp_Object)));
  
  /***********************************************************************
                               Symbols
@@@ -3585,8 -3584,13 +3586,8 @@@ extern void mark_object (Lisp_Object)
  #if defined REL_ALLOC && !defined SYSTEM_MALLOC && !defined HYBRID_MALLOC
  extern void refill_memory_reserve (void);
  #endif
 -#ifdef DOUG_LEA_MALLOC
  extern void alloc_unexec_pre (void);
  extern void alloc_unexec_post (void);
 -#else
 -INLINE void alloc_unexec_pre (void) {}
 -INLINE void alloc_unexec_post (void) {}
 -#endif
  extern const char *pending_malloc_warning;
  extern Lisp_Object zero_vector;
  extern Lisp_Object *stack_base;
@@@ -3752,15 -3756,6 +3753,15 @@@ extern void check_cons_list (void)
  INLINE void (check_cons_list) (void) { lisp_h_check_cons_list (); }
  #endif
  
 +/* Defined in gmalloc.c.  */
 +#if !defined DOUG_LEA_MALLOC && !defined HYBRID_MALLOC && !defined SYSTEM_MALLOC
 +extern size_t __malloc_extra_blocks;
 +#endif
 +#if !HAVE_DECL_ALIGNED_ALLOC
 +extern void *aligned_alloc (size_t, size_t) ATTRIBUTE_MALLOC_SIZE ((2));
 +#endif
 +extern void malloc_enable_thread (void);
 +
  #ifdef REL_ALLOC
  /* Defined in ralloc.c.  */
  extern void *r_alloc (void **, size_t) ATTRIBUTE_ALLOC_SIZE ((2));
@@@ -3906,8 -3901,6 +3907,8 @@@ extern Lisp_Object unbind_to (ptrdiff_t
  extern _Noreturn void error (const char *, ...) ATTRIBUTE_FORMAT_PRINTF (1, 2);
  extern _Noreturn void verror (const char *, va_list)
    ATTRIBUTE_FORMAT_PRINTF (1, 0);
 +extern Lisp_Object vformat_string (const char *, va_list)
 +  ATTRIBUTE_FORMAT_PRINTF (1, 0);
  extern void un_autoload (Lisp_Object);
  extern Lisp_Object call_debugger (Lisp_Object arg);
  extern void *near_C_stack_top (void);
@@@ -4132,9 -4125,6 +4133,9 @@@ extern bool noninteractive
  /* True means remove site-lisp directories from load-path.  */
  extern bool no_site_lisp;
  
 +/* True means put details like time stamps into builds.  */
 +extern bool build_details;
 +
  /* Pipe used to send exit notification to the daemon parent at
     startup.  On Windows, we use a kernel event instead.  */
  #ifndef WINDOWSNT
@@@ -4246,7 -4236,9 +4247,7 @@@ struct tty_display_info
  struct terminal;
  
  /* Defined in sysdep.c.  */
 -#ifndef HAVE_GET_CURRENT_DIR_NAME
 -extern char *get_current_dir_name (void);
 -#endif
 +extern char *emacs_get_current_dir_name (void);
  extern void stuff_char (char c);
  extern void init_foreground_group (void);
  extern void sys_subshell (void);
index a29e42e7343e0875a605349ebe7dc1f536672db5,d9563ec91745f78febf42c41af3a7c4617199a7e..d9563ec91745f78febf42c41af3a7c4617199a7e
@@@ -1785,6 -1785,14 +1785,14 @@@ Several special characters do not work 
        (file-truename tramp-test-temporary-file-directory) nil
      (string-match "^HP-UX" (tramp-get-connection-property v "uname" ""))))
  
+ (defun tramp--test-darwin-p ()
+   "Check, whether the remote host runs Mac OS X.
+ Several special characters do not work properly there."
+   ;; We must refill the cache.  `file-truename' does it.
+   (with-parsed-tramp-file-name
+       (file-truename tramp-test-temporary-file-directory) nil
+     (string-match "^Darwin" (tramp-get-connection-property v "uname" ""))))
  (defun tramp--test-check-files (&rest files)
    "Run a simple but comprehensive test over every file in FILES."
    ;; We must use `file-truename' for the temporary directory, because
@@@ -2038,9 -2046,10 +2046,10 @@@ Use the `ls' command.
        (file-name-coding-system 'utf-8))
      (tramp--test-check-files
       (unless (tramp--test-hpux-p) "Γυρίστε το Γαλαξία με Ώτο Στοπ")
-      (unless (tramp--test-hpux-p)
+      (unless (or (tramp--test-hpux-p) (tramp--test-darwin-p))
         "أصبح بوسعك الآن تنزيل نسخة كاملة من موسوعة ويكيبيديا العربية لتصفحها بلا اتصال بالإنترنت")
-      "银河系漫游指南系列"
+      (unless (tramp--test-darwin-p)
+        "银河系漫游指南系列")
       "Автостопом по гала́ктике")))
  
  (ert-deftest tramp-test32-utf8 ()