Subject: bug#20537: closed (Re: bug#20537: 25.0.50; `compose-string-internal` does not work properly on OSX.)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 10 May 2015 17:35:03 +0000

Your bug report

#20537: 25.0.50; `compose-string-internal` does not work properly on OSX.

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
20537: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20537
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#20537: 25.0.50; `compose-string-internal` does not work properly on OSX.
From: "Jan D." <[email-masked]>
To: Keith David Bershatsky <[email-masked]>
Cc: [email-masked]
Date: Sun, 10 May 2015 19:34:01 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Fixed in trunk.

	Jan D.

> 9 maj 2015 kl. 20:27 skrev Keith David Bershatsky <[email-masked]>:
> 
> The function `compose-string-internal` does not work properly when running Emacs built on OSX.  The following example works on Windows, but not OSX -- it "should be" the letter A with a pipe running through the center of the letter A.  Depending upon the arguments passed to `compose-string-internal` when using Emacs on OSX, the pipe is either displayed to the right (at various distances) or is not visible at all -- it never displays "on top of" the target character.
> 
> (defun test-fn ()
> (interactive)
>  (message (compose-string-internal "A|" 0 (length "A|"))))
> 
> And here is another version of the same concept using `compose-chars`, which uses `compose-string-internal`.
> 
> (defun test-fn ()
> (interactive)
>  (message (compose-chars (string-to-char "A") '(tc . tc) (string-to-char "|"))))
> 
> Thanks,
> 
> Keith
> 
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> 
> In GNU Emacs 25.0.50.1 (x86_64-apple-darwin10.8.0, NS appkit-1038.36 Version 10.6.8 (Build 10K549))
> of 2014-10-01 on MP.local
> Repository revision: 117996 [email-masked]
> Windowing system distributor `Apple', version 10.3.1038
> Configured using:
> `configure --with-ns'
> 
> Configured features:
> ACL LIBXML2 ZLIB
> 
> Important settings:
>  locale-coding-system: utf-8-unix
> 
> Major mode: FM
> 
> Minor modes in effect:
>  tb-mode: t
>  sb-mode: t
>  ml-mode: t
>  ds-mode: t
>  sd-mode: t
>  cm-mode: t
>  bc-mode: t
> 
> Recent input:
> <s-down> <S-up> <S-up> <S-up> <S-up> <S-up> <S-right> 
> s-c <up> <up> <escape> C-g <escape> x r e p o r t - 
> e m a c s <tab> <return>
> 
> Recent messages:
> Wrote /Users/HOME/.0.data/.0.emacs/.lock
> Emacs:  (global-set-key [f5] 'test-fn)
> 
> (defun tes . . .
> *beep*
> ESC C-g is undefined
> 
> Load-path shadows:
> None found.
> 
> Features:
> (shadow emacsbug sendmail lawlist-ztree lawlist-yas lawlist-ws
> lawlist-wl elmo-imap4 elmo-localdir modb-standard modb-legacy
> elmo-internal elmo-flag mmelmo-imap mmelmo-buffer elsp-generic
> disp-table enriched ps-print ps-def lpr parse-time lawlist-w3m
> browse-url doc-view ccl lawlist-window lawlist-vl lawlist-undo
> lawlist-txt lawlist-tm lawlist-tex skeleton compare-w lawlist-tabbar
> lawlist-sb lawlist-ruler mule-util lawlist-replace lawlist-re-builder
> lawlist-print lawlist-parens lawlist-org lawlist-calendar org
> org-macro org-footnote org-pcomplete org-list org-faces org-entities
> noutline outline org-version ob-emacs-lisp ob ob-tangle org-src ob-ref
> ob-lob ob-table ob-keys ob-exp ob-comint ob-core ob-eval org-compat
> org-macs org-loaddefs holidays hol-loaddefs cal-menu calendar
> cal-loaddefs lawlist-movement lawlist-ml lawlist-misc lawlist-mc rect
> lawlist-lorem lawlist-ln lawlist-keymap lawlist-jit-lock
> lawlist-ispell lawlist-isearch help-macro lawlist-hl lawlist-help-fns
> lawlist-help lawlist-grep lawlist-git ido view vc-git vc vc-dispatcher
> url-http tls url url-proxy url-privacy url-expand url-methods
> url-history mailcap url-auth url-cookie url-domsuf url-gw thingatpt
> time-stamp log-view log-edit message mml mml-sec mm-decode mm-bodies
> mm-encode gmm-utils mailheader pcvs-util add-log json grep compile
> find-lisp epa epg epg-config ediff-merg ediff-wind ediff-diff
> ediff-mult ediff-help ediff-init ediff-util ediff ert find-func ewoc
> debug eieio-base diff-mode conf-mode autorevert filenotify
> lawlist-frame lawlist-frame-bufs lawlist-font-lock lawlist-fm
> lawlist-find-func lawlist-files-tramp zeroconf url-util url-parse
> url-vars dbus xml dired lawlist-elscreen lawlist-elisp lawlist-dv
> jka-compr image-mode lawlist-ds lawlist-dired tramp-sh tramp
> tramp-compat auth-source eieio byte-opt bytecomp byte-compile cconv
> eieio-core password-cache tramp-loaddefs trampver format-spec
> lawlist-desktop frameset lawlist-descr-text lawlist-help-mode quail
> help-mode lawlist-compile rx lawlist-colors lawlist-cm pcase
> lawlist-calc easymenu lawlist-button lawlist-bk derived edmacro kmacro
> lawlist-bc lawlist-bbdb gnus gnus-ems nnheader gnus-util mail-utils
> wid-edit mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mm-util
> mail-prsvr mailabbrev cl-macs mail-extr rfc822 cl cl-loaddefs cl-lib
> timezone lawlist-as lawlist-arc lawlist-+ easy-mmode savehist shell
> pcomplete comint ansi-color ring saveplace advice help-fns server gv
> time-date tooltip electric uniquify ediff-hook vc-hooks
> lisp-float-type mwheel ns-win tool-bar dnd fontset image regexp-opt
> fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode
> register page menu-bar rfn-eshadow timer select scroll-bar mouse
> jit-lock font-lock syntax facemenu font-core frame cham georgian
> utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
> japanese hebrew greek romanian slovak czech european ethiopic indian
> cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
> minibuffer nadvice loaddefs button faces cus-face macroexp files
> text-properties overlay sha1 md5 base64 format env code-pages mule
> custom widget hashtable-print-readable backquote make-network-process
> cocoa ns multi-tty emacs)
> 
> Memory information:
> ((conses 16 1392036 113091)
> (symbols 48 65272 0)
> (miscs 40 103 152)
> (strings 32 144125 15463)
> (string-bytes 1 5147780)
> (vectors 16 33975)
> (vector-slots 8 890440 30007)
> (floats 8 1484 154)
> (intervals 56 253 0)
> (buffers 976 11))
> 
> 

Subject: 25.0.50; `compose-string-internal` does not work properly on OSX.
From: Keith David Bershatsky <[email-masked]>
To: [email-masked]
Date: Sat, 09 May 2015 11:27:15 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

The function `compose-string-internal` does not work properly when running Emacs built on OSX.  The following example works on Windows, but not OSX -- it "should be" the letter A with a pipe running through the center of the letter A.  Depending upon the arguments passed to `compose-string-internal` when using Emacs on OSX, the pipe is either displayed to the right (at various distances) or is not visible at all -- it never displays "on top of" the target character.

(defun test-fn ()
(interactive)
  (message (compose-string-internal "A|" 0 (length "A|"))))

And here is another version of the same concept using `compose-chars`, which uses `compose-string-internal`.

(defun test-fn ()
(interactive)
  (message (compose-chars (string-to-char "A") '(tc . tc) (string-to-char "|"))))

Thanks,

Keith

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

In GNU Emacs 25.0.50.1 (x86_64-apple-darwin10.8.0, NS appkit-1038.36 Version 10.6.8 (Build 10K549))
 of 2014-10-01 on MP.local
Repository revision: 117996 [email-masked]
Windowing system distributor `Apple', version 10.3.1038
Configured using:
 `configure --with-ns'

Configured features:
ACL LIBXML2 ZLIB

Important settings:
  locale-coding-system: utf-8-unix

Major mode: FM

Minor modes in effect:
  tb-mode: t
  sb-mode: t
  ml-mode: t
  ds-mode: t
  sd-mode: t
  cm-mode: t
  bc-mode: t

Recent input:
<s-down> <S-up> <S-up> <S-up> <S-up> <S-up> <S-right> 
s-c <up> <up> <escape> C-g <escape> x r e p o r t - 
e m a c s <tab> <return>

Recent messages:
Wrote /Users/HOME/.0.data/.0.emacs/.lock
Emacs:  (global-set-key [f5] 'test-fn)

(defun tes . . .
*beep*
ESC C-g is undefined

Load-path shadows:
None found.

Features:
(shadow emacsbug sendmail lawlist-ztree lawlist-yas lawlist-ws
lawlist-wl elmo-imap4 elmo-localdir modb-standard modb-legacy
elmo-internal elmo-flag mmelmo-imap mmelmo-buffer elsp-generic
disp-table enriched ps-print ps-def lpr parse-time lawlist-w3m
browse-url doc-view ccl lawlist-window lawlist-vl lawlist-undo
lawlist-txt lawlist-tm lawlist-tex skeleton compare-w lawlist-tabbar
lawlist-sb lawlist-ruler mule-util lawlist-replace lawlist-re-builder
lawlist-print lawlist-parens lawlist-org lawlist-calendar org
org-macro org-footnote org-pcomplete org-list org-faces org-entities
noutline outline org-version ob-emacs-lisp ob ob-tangle org-src ob-ref
ob-lob ob-table ob-keys ob-exp ob-comint ob-core ob-eval org-compat
org-macs org-loaddefs holidays hol-loaddefs cal-menu calendar
cal-loaddefs lawlist-movement lawlist-ml lawlist-misc lawlist-mc rect
lawlist-lorem lawlist-ln lawlist-keymap lawlist-jit-lock
lawlist-ispell lawlist-isearch help-macro lawlist-hl lawlist-help-fns
lawlist-help lawlist-grep lawlist-git ido view vc-git vc vc-dispatcher
url-http tls url url-proxy url-privacy url-expand url-methods
url-history mailcap url-auth url-cookie url-domsuf url-gw thingatpt
time-stamp log-view log-edit message mml mml-sec mm-decode mm-bodies
mm-encode gmm-utils mailheader pcvs-util add-log json grep compile
find-lisp epa epg epg-config ediff-merg ediff-wind ediff-diff
ediff-mult ediff-help ediff-init ediff-util ediff ert find-func ewoc
debug eieio-base diff-mode conf-mode autorevert filenotify
lawlist-frame lawlist-frame-bufs lawlist-font-lock lawlist-fm
lawlist-find-func lawlist-files-tramp zeroconf url-util url-parse
url-vars dbus xml dired lawlist-elscreen lawlist-elisp lawlist-dv
jka-compr image-mode lawlist-ds lawlist-dired tramp-sh tramp
tramp-compat auth-source eieio byte-opt bytecomp byte-compile cconv
eieio-core password-cache tramp-loaddefs trampver format-spec
lawlist-desktop frameset lawlist-descr-text lawlist-help-mode quail
help-mode lawlist-compile rx lawlist-colors lawlist-cm pcase
lawlist-calc easymenu lawlist-button lawlist-bk derived edmacro kmacro
lawlist-bc lawlist-bbdb gnus gnus-ems nnheader gnus-util mail-utils
wid-edit mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mailabbrev cl-macs mail-extr rfc822 cl cl-loaddefs cl-lib
timezone lawlist-as lawlist-arc lawlist-+ easy-mmode savehist shell
pcomplete comint ansi-color ring saveplace advice help-fns server gv
time-date tooltip electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel ns-win tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode
register page menu-bar rfn-eshadow timer select scroll-bar mouse
jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
cocoa ns multi-tty emacs)

Memory information:
((conses 16 1392036 113091)
 (symbols 48 65272 0)
 (miscs 40 103 152)
 (strings 32 144125 15463)
 (string-bytes 1 5147780)
 (vectors 16 33975)
 (vector-slots 8 890440 30007)
 (floats 8 1484 154)
 (intervals 56 253 0)
 (buffers 976 11))