* bug#20316: 24.5; `string-lessp' doesn't respect value of LC_COLLATE @ 2015-04-13 5:22 Alexis 2015-04-13 5:59 ` Alexis ` (2 more replies) 0 siblings, 3 replies; 11+ messages in thread From: Alexis @ 2015-04-13 5:22 UTC (permalink / raw) To: 20316 (getenv "LC_COLLATE") => "hr_HR.UTF-8" (string-lessp "Ć" "D") => nil (string-lessp "Đ" "S") => nil (string-lessp "Š" "Z") => nil In GNU Emacs 24.5.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.4.2) of 2015-04-11 on adele Windowing system distributor `The X.Org Foundation', version 11.0.11204000 System Description: Debian GNU/Linux 7.8 (wheezy) Important settings: value of $LC_COLLATE: hr_HR.utf8 value of $LANG: en_AU.UTF-8 locale-coding-system: utf-8-unix Major mode: Text Minor modes in effect: flyspell-mode: t magit-auto-revert-mode: t diff-auto-refine-mode: t electric-pair-mode: t global-flycheck-mode: t flycheck-mode: t show-paren-mode: t global-pretty-mode: t engine-mode: t global-page-break-lines-mode: t change-cursor-mode: t global-undo-tree-mode: t undo-tree-mode: t shell-dirtrack-mode: t guide-key-mode: t global-company-mode: t company-mode: t TeX-PDF-mode: t erc-log-mode: t erc-list-mode: t erc-menu-mode: t erc-autojoin-mode: t erc-ring-mode: t erc-networks-mode: t erc-pcomplete-mode: t erc-track-mode: t erc-track-minor-mode: t erc-match-mode: t erc-button-mode: t erc-fill-mode: t erc-stamp-mode: t erc-netsplit-mode: t erc-irccontrols-mode: t erc-noncommands-mode: t erc-move-to-prompt-mode: t erc-readonly-mode: t tooltip-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t visual-line-mode: t transient-mark-mode: t auto-fill-mode: 1 Load-path shadows: /usr/share/emacs/site-lisp/gnugo hides /home/alexis/.emacs.d/elpa/gnugo-3.0.0/gnugo /home/alexis/.emacs.d/elpa/cperl-mode-20140309.122/cperl-mode hides /usr/local/share/emacs/24.5/lisp/progmodes/cperl-mode /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ox-man hides /usr/local/share/emacs/24.5/lisp/org/ox-man /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-haskell hides /usr/local/share/emacs/24.5/lisp/org/ob-haskell /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-screen hides /usr/local/share/emacs/24.5/lisp/org/ob-screen /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ox-beamer hides /usr/local/share/emacs/24.5/lisp/org/ox-beamer /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-java hides /usr/local/share/emacs/24.5/lisp/org/ob-java /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ox-odt hides /usr/local/share/emacs/24.5/lisp/org/ox-odt /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-mobile hides /usr/local/share/emacs/24.5/lisp/org/org-mobile /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-feed hides /usr/local/share/emacs/24.5/lisp/org/org-feed /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-lob hides /usr/local/share/emacs/24.5/lisp/org/ob-lob /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-js hides /usr/local/share/emacs/24.5/lisp/org/ob-js /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-footnote hides /usr/local/share/emacs/24.5/lisp/org/org-footnote /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-ref hides /usr/local/share/emacs/24.5/lisp/org/ob-ref /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-io hides /usr/local/share/emacs/24.5/lisp/org/ob-io /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ox-texinfo hides /usr/local/share/emacs/24.5/lisp/org/ox-texinfo /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-comint hides /usr/local/share/emacs/24.5/lisp/org/ob-comint /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-ctags hides /usr/local/share/emacs/24.5/lisp/org/org-ctags /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-keys hides /usr/local/share/emacs/24.5/lisp/org/ob-keys /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-sqlite hides /usr/local/share/emacs/24.5/lisp/org/ob-sqlite /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-awk hides /usr/local/share/emacs/24.5/lisp/org/ob-awk /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-asymptote hides /usr/local/share/emacs/24.5/lisp/org/ob-asymptote /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-table hides /usr/local/share/emacs/24.5/lisp/org/org-table /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-pcomplete hides /usr/local/share/emacs/24.5/lisp/org/org-pcomplete /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-ruby hides /usr/local/share/emacs/24.5/lisp/org/ob-ruby /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-mouse hides /usr/local/share/emacs/24.5/lisp/org/org-mouse /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-emacs-lisp hides /usr/local/share/emacs/24.5/lisp/org/ob-emacs-lisp /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-list hides /usr/local/share/emacs/24.5/lisp/org/org-list /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-irc hides /usr/local/share/emacs/24.5/lisp/org/org-irc /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-org hides /usr/local/share/emacs/24.5/lisp/org/ob-org /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-macro hides /usr/local/share/emacs/24.5/lisp/org/org-macro /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-matlab hides /usr/local/share/emacs/24.5/lisp/org/ob-matlab /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-lilypond hides /usr/local/share/emacs/24.5/lisp/org/ob-lilypond /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-plantuml hides /usr/local/share/emacs/24.5/lisp/org/ob-plantuml /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-maxima hides /usr/local/share/emacs/24.5/lisp/org/ob-maxima /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-protocol hides /usr/local/share/emacs/24.5/lisp/org/org-protocol /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-ocaml hides /usr/local/share/emacs/24.5/lisp/org/ob-ocaml /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-timer hides /usr/local/share/emacs/24.5/lisp/org/org-timer /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-shen hides /usr/local/share/emacs/24.5/lisp/org/ob-shen /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-datetree hides /usr/local/share/emacs/24.5/lisp/org/org-datetree /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-w3m hides /usr/local/share/emacs/24.5/lisp/org/org-w3m /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-scheme hides /usr/local/share/emacs/24.5/lisp/org/ob-scheme /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-inlinetask hides /usr/local/share/emacs/24.5/lisp/org/org-inlinetask /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-rmail hides /usr/local/share/emacs/24.5/lisp/org/org-rmail /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-habit hides /usr/local/share/emacs/24.5/lisp/org/org-habit /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-perl hides /usr/local/share/emacs/24.5/lisp/org/ob-perl /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-R hides /usr/local/share/emacs/24.5/lisp/org/ob-R /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-table hides /usr/local/share/emacs/24.5/lisp/org/ob-table /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-python hides /usr/local/share/emacs/24.5/lisp/org/ob-python /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-gnuplot hides /usr/local/share/emacs/24.5/lisp/org/ob-gnuplot /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-crypt hides /usr/local/share/emacs/24.5/lisp/org/org-crypt /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-clock hides /usr/local/share/emacs/24.5/lisp/org/org-clock /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-colview hides /usr/local/share/emacs/24.5/lisp/org/org-colview /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-archive hides /usr/local/share/emacs/24.5/lisp/org/org-archive /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-mhe hides /usr/local/share/emacs/24.5/lisp/org/org-mhe /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-mscgen hides /usr/local/share/emacs/24.5/lisp/org/ob-mscgen /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org hides /usr/local/share/emacs/24.5/lisp/org/org /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-eshell hides /usr/local/share/emacs/24.5/lisp/org/org-eshell /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-core hides /usr/local/share/emacs/24.5/lisp/org/ob-core /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-ledger hides /usr/local/share/emacs/24.5/lisp/org/ob-ledger /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-exp hides /usr/local/share/emacs/24.5/lisp/org/ob-exp /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-id hides /usr/local/share/emacs/24.5/lisp/org/org-id /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-latex hides /usr/local/share/emacs/24.5/lisp/org/ob-latex /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ox hides /usr/local/share/emacs/24.5/lisp/org/ox /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-gnus hides /usr/local/share/emacs/24.5/lisp/org/org-gnus /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-scala hides /usr/local/share/emacs/24.5/lisp/org/ob-scala /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-tangle hides /usr/local/share/emacs/24.5/lisp/org/ob-tangle /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-fortran hides /usr/local/share/emacs/24.5/lisp/org/ob-fortran /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-clojure hides /usr/local/share/emacs/24.5/lisp/org/ob-clojure /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-C hides /usr/local/share/emacs/24.5/lisp/org/ob-C /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-indent hides /usr/local/share/emacs/24.5/lisp/org/org-indent /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-element hides /usr/local/share/emacs/24.5/lisp/org/org-element /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-css hides /usr/local/share/emacs/24.5/lisp/org/ob-css /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-docview hides /usr/local/share/emacs/24.5/lisp/org/org-docview /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ox-icalendar hides /usr/local/share/emacs/24.5/lisp/org/ox-icalendar /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-ditaa hides /usr/local/share/emacs/24.5/lisp/org/ob-ditaa /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ox-ascii hides /usr/local/share/emacs/24.5/lisp/org/ox-ascii /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ox-html hides /usr/local/share/emacs/24.5/lisp/org/ox-html /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-install hides /usr/local/share/emacs/24.5/lisp/org/org-install /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-calc hides /usr/local/share/emacs/24.5/lisp/org/ob-calc /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-faces hides /usr/local/share/emacs/24.5/lisp/org/org-faces /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-sass hides /usr/local/share/emacs/24.5/lisp/org/ob-sass /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-agenda hides /usr/local/share/emacs/24.5/lisp/org/org-agenda /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-info hides /usr/local/share/emacs/24.5/lisp/org/org-info /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-sh hides /usr/local/share/emacs/24.5/lisp/org/ob-sh /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-picolisp hides /usr/local/share/emacs/24.5/lisp/org/ob-picolisp /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-src hides /usr/local/share/emacs/24.5/lisp/org/org-src /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-entities hides /usr/local/share/emacs/24.5/lisp/org/org-entities /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-sql hides /usr/local/share/emacs/24.5/lisp/org/ob-sql /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ox-md hides /usr/local/share/emacs/24.5/lisp/org/ox-md /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-makefile hides /usr/local/share/emacs/24.5/lisp/org/ob-makefile /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-macs hides /usr/local/share/emacs/24.5/lisp/org/org-macs /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-lisp hides /usr/local/share/emacs/24.5/lisp/org/ob-lisp /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-compat hides /usr/local/share/emacs/24.5/lisp/org/org-compat /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ox-publish hides /usr/local/share/emacs/24.5/lisp/org/ox-publish /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-dot hides /usr/local/share/emacs/24.5/lisp/org/ob-dot /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-eval hides /usr/local/share/emacs/24.5/lisp/org/ob-eval /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-version hides /usr/local/share/emacs/24.5/lisp/org/org-version /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-loaddefs hides /usr/local/share/emacs/24.5/lisp/org/org-loaddefs /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-capture hides /usr/local/share/emacs/24.5/lisp/org/org-capture /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-bibtex hides /usr/local/share/emacs/24.5/lisp/org/org-bibtex /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-bbdb hides /usr/local/share/emacs/24.5/lisp/org/org-bbdb /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-attach hides /usr/local/share/emacs/24.5/lisp/org/org-attach /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ox-org hides /usr/local/share/emacs/24.5/lisp/org/ox-org /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob-octave hides /usr/local/share/emacs/24.5/lisp/org/ob-octave /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/org-plot hides /usr/local/share/emacs/24.5/lisp/org/org-plot /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ob hides /usr/local/share/emacs/24.5/lisp/org/ob /home/alexis/.emacs.d/elpa/org-plus-contrib-20150406/ox-latex hides /usr/local/share/emacs/24.5/lisp/org/ox-latex /home/alexis/.emacs.d/elpa/tabulated-list-20120406.1351/tabulated-list hides /usr/local/share/emacs/24.5/lisp/emacs-lisp/tabulated-list /home/alexis/.emacs.d/elpa/emms-20150329.1945/tq hides /usr/local/share/emacs/24.5/lisp/emacs-lisp/tq /home/alexis/.emacs.d/misc/longlines hides /usr/local/share/emacs/24.5/lisp/obsolete/longlines Features: (shadow emacsbug cc-langs cc-mode-expansions cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs el2markdown xterm macros misearch multi-isearch timezone irfc eieio-opt org-colview org-table appt cal-china lunar cal-bahai cal-islam cal-move align face-remap gnutls url-queue shr-color color shr jumblr flow-fill mail-extr org-rmail org-mhe org-irc org-info org-gnus org-docview org-bibtex bibtex org-bbdb org-w3m cus-edit image-file flyspell ispell markdown-mode magit-key-mode magit view grep diff-mode autorevert filenotify git-rebase-mode git-commit-mode log-edit pcvs-util add-log bookmark+-mac gnus-sum nnoo gnus-group gnus-undo nnmail mail-source gnus-start gnus-spec gnus-int gnus-range gnus-win gnus gnus-ems nnheader ffap visual-regexp names edebug autoload lisp-mnt tar-mode mm-archive url-cache url-handlers ibuf-ext ibuffer mule-util cal-hebrew parse-time font-utils persistent-soft list-utils pcache eieio-base server vc-git tabify eldoc hideshow hl-sexp elec-pair aggressive-indent ert ewoc debug org-vcard picolisp-mode flycheck subr-x company-files company-oddmuse company-keywords company-etags company-gtags company-dabbrev-code company-dabbrev company-capf company-cmake company-xcode company-clang company-semantic company-eclim company-template company-css company-nxml company-bbdb company-math math-symbol-lists company-tern dash-functional tern url-http url-auth url-gw paren cus-start cus-load solar cal-dst warnings pretty-mode paredit-menu paredit org-weather org-depend org-bullets org-clock highlight-tags-mode evil evil-integration evil-maps evil-commands evil-command-window evil-types evil-search evil-ex evil-macros evil-repeat evil-states evil-core evil-common windmove rect evil-digraphs evil-vars engine-mode dired-details+ dired-details perl-find-library cperl-mode-expansions cperl-mode imenu man color-theme-desert color-theme reporter calc calc-loaddefs calc-macs page-break-lines cursor-chg column-marker col-highlight vline malyon malyon-mode pcase window-margin unicode-fonts undo-tree diff tramp tramp-compat tramp-loaddefs trampver shell supercite regi smex saveplace rainbow-delimiters notify highlight-tail helm-info helm-dictionary helm-plugin helm-utils helm-net helm-dash helm-match-plugin helm helm-source guide-key popwin google-translate google-translate-default-ui google-translate-core-ui google-translate-core filecache expand-region text-mode-expansions the-org-mode-expansions er-basic-expansions expand-region-core expand-region-custom ac-emacs-eclim-source auto-complete popup eclim-completion eclimd eclim eclim-problems eclim-maven compile eclim-ant eclim-java eclim-project rx s ucs-normalize etags dired-open dired-hacks-utils dash company calfw-org org-capture org-element calfw-ical icalendar diary-lib diary-loaddefs calfw-cal calfw holidays hol-loaddefs bookmark+ bookmark+-key dired-x bookmark+-1 bookmark+-bmu help-mode bookmark+-lit bookmark tex crm mu4e mu4e-speedbar speedbar sb-image ezimage dframe mu4e-main mu4e-view browse-url mu4e-headers mu4e-compose mu4e-draft mu4e-actions ido rfc2368 smtpmail sendmail mu4e-mark mu4e-message html2text mu4e-proc mu4e-utils doc-view jka-compr image-mode mu4e-lists mu4e-about mu4e-vars message rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils gmm-utils mailheader hl-line mu4e-meta notifications dbus xml erc-log network-stream starttls tls epa-file epa derived epg erc-list erc-menu erc-join erc-ring erc-networks erc-pcomplete erc-track erc-match erc-button wid-edit erc-fill erc-stamp erc-netsplit erc-goodies erc erc-backend erc-compat thingatpt pp emms-volume emms-volume-amixer emms-bookmarks emms-cue emms-mode-line-icon emms-browser sort emms-playlist-sort emms-last-played emms-player-xine emms-player-mpd tq emms-playing-time emms-lyrics emms-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf mailcap emms-streams emms-tag-editor emms-mark emms-mode-line emms-cache emms-info-ogginfo emms-info-mp3info emms-info later-do emms-playlist-mode emms-player-vlc emms-player-mplayer emms-player-simple emms-source-playlist emms-source-file locate dired emms-setup emms emms-compat disp-table org-location-google-maps org-agenda google-maps google-maps-static url-util url-parse auth-source eieio byte-opt bytecomp byte-compile cl-extra cconv eieio-core gnus-util mm-util mail-prsvr password-cache url-vars google-maps-geocode google-maps-base json org org-macro org-footnote org-pcomplete pcomplete org-list org-faces org-entities time-date noutline outline easy-mmode org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src ob-keys ob-comint comint ansi-color ring ob-core ob-eval org-compat org-macs org-loaddefs format-spec find-func cal-menu calendar cal-loaddefs charmap-autoloads charmap color-theme-autoloads color-theme-buffer-local-autoloads column-marker-autoloads tex-site cperl-mode-autoloads dired-details-autoloads dired-dups-autoloads dired-single-autoloads dropdown-list-autoloads elisp-cache-autoloads edmacro kmacro erc-view-log-autoloads esqlite-helm-autoloads esqlite-autoloads free-keys-autoloads furl-autoloads helm-package-autoloads http-twiddle-autoloads htmlize-autoloads irfc-autoloads maildir-autoloads kv-autoloads manage-minor-mode-autoloads memory-usage-autoloads mode-compile-autoloads advice notify-autoloads oauth-autoloads oauth2-autoloads finder-inf paredit-menu-autoloads perlcritic-autoloads regex-tool-autoloads register-list-autoloads request-deferred-autoloads request-autoloads slime-autoloads soundcloud-autoloads info easymenu spaces-autoloads tabulated-list-autoloads help-fns cl-macs cl gv cl-loaddefs cl-lib xclip-autoloads package epg-config tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment 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 dbusbind gfilenotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs) Memory information: ((conses 16 1233922 162679) (symbols 48 75155 9) (miscs 40 1367 2837) (strings 32 317433 36339) (string-bytes 1 7874107) (vectors 16 98819) (vector-slots 8 2174947 45044) (floats 8 1211 4130) (intervals 56 37046 3751) (buffers 960 74) (heap 1024 120387 6994)) ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#20316: 24.5; `string-lessp' doesn't respect value of LC_COLLATE 2015-04-13 5:22 bug#20316: 24.5; `string-lessp' doesn't respect value of LC_COLLATE Alexis @ 2015-04-13 5:59 ` Alexis 2015-04-13 6:18 ` Michael Albinus 2015-04-13 14:10 ` Paul Eggert 2 siblings, 0 replies; 11+ messages in thread From: Alexis @ 2015-04-13 5:59 UTC (permalink / raw) To: 20316 Alexis <flexibeast@gmail.com> writes: > (getenv "LC_COLLATE") => "hr_HR.UTF-8" > > (string-lessp "Ć" "D") => nil (string-lessp "Đ" "S") => nil > (string-lessp "Š" "Z") => nil i should add, this happens even with `set-locale-environment' specified as 'hr_HR.UTF-8' and/or `set-language-environment' specified as 'Croatian'. ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#20316: 24.5; `string-lessp' doesn't respect value of LC_COLLATE 2015-04-13 5:22 bug#20316: 24.5; `string-lessp' doesn't respect value of LC_COLLATE Alexis 2015-04-13 5:59 ` Alexis @ 2015-04-13 6:18 ` Michael Albinus 2015-04-13 6:42 ` Alexis 2015-04-13 14:10 ` Paul Eggert 2 siblings, 1 reply; 11+ messages in thread From: Michael Albinus @ 2015-04-13 6:18 UTC (permalink / raw) To: Alexis; +Cc: 20316 Alexis <flexibeast@gmail.com> writes: > (getenv "LC_COLLATE") => "hr_HR.UTF-8" > > (string-lessp "Ć" "D") => nil > (string-lessp "Đ" "S") => nil > (string-lessp "Š" "Z") => nil `string-lessp' is not design to respect collation order. The docstring speaks about lexicographoc order. In Emacs 25.0.50, there is `string-collate-lessp', with respects your locale settings. Best regards, Michael. ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#20316: 24.5; `string-lessp' doesn't respect value of LC_COLLATE 2015-04-13 6:18 ` Michael Albinus @ 2015-04-13 6:42 ` Alexis 2015-04-13 6:53 ` Michael Albinus 2015-04-13 14:48 ` Eli Zaretskii 0 siblings, 2 replies; 11+ messages in thread From: Alexis @ 2015-04-13 6:42 UTC (permalink / raw) To: 20316; +Cc: michael.albinus Michael Albinus <michael.albinus@gmx.de> writes: > Alexis <flexibeast@gmail.com> writes: > >> (getenv "LC_COLLATE") => "hr_HR.UTF-8" >> >> (string-lessp "Ć" "D") => nil (string-lessp "Đ" "S") => nil >> (string-lessp "Š" "Z") => nil > > `string-lessp' is not design to respect collation order. The > docstring speaks about lexicographoc order. i'm sorry, i don't follow this. Yes, the docstring talks about lexicographic order. But i think it's reasonable for users to expect Emacs' built-in sort functionality (e.g. `sort-lines') to respect their current locale such that lexicographic order and collation order are treated as basically synonymous. Unless there's an important distinction between the two in this context that i'm missing? In this specific case, a user of a package i maintain was surprised when `org-sort' didn't sort their Croatian-language Org entries properly. Under the hood, `org-sort' uses `string-lessp'. Is the bottom line that they'll have to wait until at least 25.1 before Org could add conditional code to use `string-collate-lessp', to at least DTRT for users of >25.0? Alexis. ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#20316: 24.5; `string-lessp' doesn't respect value of LC_COLLATE 2015-04-13 6:42 ` Alexis @ 2015-04-13 6:53 ` Michael Albinus 2015-04-13 14:48 ` Eli Zaretskii 1 sibling, 0 replies; 11+ messages in thread From: Michael Albinus @ 2015-04-13 6:53 UTC (permalink / raw) To: Alexis; +Cc: 20316 Alexis <flexibeast@gmail.com> writes: > In this specific case, a user of a package i maintain was surprised > when `org-sort' didn't sort their Croatian-language Org entries > properly. Under the hood, `org-sort' uses `string-lessp'. This shall be customizable. > Is the > bottom line that they'll have to wait until at least 25.1 before Org > could add conditional code to use `string-collate-lessp', to at least > DTRT for users of >25.0? `string-collate-lessp' is a new function in Emacs 25. Yes, you have to wait. > Alexis. Best regards, Michael. ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#20316: 24.5; `string-lessp' doesn't respect value of LC_COLLATE 2015-04-13 6:42 ` Alexis 2015-04-13 6:53 ` Michael Albinus @ 2015-04-13 14:48 ` Eli Zaretskii 2015-04-14 0:55 ` Alexis 1 sibling, 1 reply; 11+ messages in thread From: Eli Zaretskii @ 2015-04-13 14:48 UTC (permalink / raw) To: Alexis; +Cc: michael.albinus, 20316 > From: Alexis <flexibeast@gmail.com> > Date: Mon, 13 Apr 2015 16:42:30 +1000 > Cc: michael.albinus@gmx.de > > (getenv "LC_COLLATE") => "hr_HR.UTF-8" > (string-lessp "Ć" "D") => nil > (string-lessp "Đ" "S") => nil > (string-lessp "Š" "Z") => nil > > `string-lessp' is not design to respect collation order. The docstring speaks about lexicographoc order. > > i'm sorry, i don't follow this. Yes, the docstring talks about lexicographic order. But i think it's reasonable for users to expect Emacs' built-in sort functionality (e.g. `sort-lines') to respect their current locale such that lexicographic order and collation order are treated as basically synonymous. Unless there's an important distinction between the two in this context that i'm missing? Emacs is a multi-lingual editor, and it isn't clear how to apply locale-specific settings, including collation, to text that can potentially include many scripts. E.g., a locale could specify a codeset that doesn't cover characters outside of a particular script, which will produce undefined results if you try using system sorting routines with characters outside of that single script. Also, using locale-specific sorting would produce different results not only in different locales, but also on different platforms in the same locale, because the implementation of locale collation order differs from platform to platform and from one C library to another. Please also note that locale-sensitive collation order could mean more than just order of characters. E.g., it could specify that punctuation characters or differences in accents should be ignored. So by default, Emacs sorts disregarding locale-specific ordering, basically using the Unicode codepoints of the characters to order them. > In this specific case, a user of a package i maintain was surprised when `org-sort' didn't sort their Croatian-language Org entries properly. Under the hood, `org-sort' uses `string-lessp'. Is the bottom line that they'll have to wait until at least 25.1 before Org could add conditional code to use `string-collate-lessp', to at least DTRT for users of >25.0? You could use the external 'sort' utility in the meantime, if it supports locale-dependent ordering. Once again: the results will be not 100% deterministic, even for the same locale, so your users should "caveat emptor". May I ask what does that package of yours do that it needs locale-dependent sorting? ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#20316: 24.5; `string-lessp' doesn't respect value of LC_COLLATE 2015-04-13 14:48 ` Eli Zaretskii @ 2015-04-14 0:55 ` Alexis 2015-04-14 14:57 ` Eli Zaretskii 0 siblings, 1 reply; 11+ messages in thread From: Alexis @ 2015-04-14 0:55 UTC (permalink / raw) To: 20316; +Cc: michael.albinus Eli Zaretskii <eliz@gnu.org> writes: > Emacs is a multi-lingual editor, and it isn't clear how to apply > locale-specific settings, including collation, to text that can > potentially include many scripts. E.g., a locale could specify > a codeset that doesn't cover characters outside of a particular > script, which will produce undefined results if you try using > system sorting routines with characters outside of that single > script. Okay, fair point. > Also, using locale-specific sorting would produce different > results not only in different locales, but also on different > platforms in the same locale, because the implementation of > locale collation order differs from platform to platform and > from one C library to another. Huh, okay. > Please also note that locale-sensitive collation order could > mean more than just order of characters. E.g., it could specify > that punctuation characters or differences in accents should be > ignored. *nod* > So by default, Emacs sorts disregarding locale-specific > ordering, basically using the Unicode codepoints of the > characters to order them. This makes sense given what you've said above, but can this still be referred to as 'lexicographic' ordering? To me, 'lexicographic ordering' is ordering as per a dictionary for the relevant language, not by codepoint for an arbitrary encoding. Is this wrong? > You could use the external 'sort' utility in the meantime, if it > supports locale-dependent ordering. Once again: the results > will be not 100% deterministic, even for the same locale, so > your users should "caveat emptor". *nod* Thanks, i'll pass that on. (And note it for the future.) > May I ask what does that package of yours do that it needs > locale-dependent sorting? The package itself doesn't do it, but the results it produces might subsequently require such sorting. The package is `org-vcard': https://github.com/flexibeast/org-vcard which allows one to import vCards to contacts in Org-based formats (and export contacts from Org-based formats to vCards). One of the package's users had imported a set of contacts, then expected to be able to sort those contacts according to Croatian rules, using `org-sort' (from `org.el'). However, to quote the user, this resulted in the contacts being sorted: according to the English alphabet rules where the contact entries which start with Croatian characters (Č,Ć,Đ,Š,Ž) are at the end of the list, iow. after 'Z' entries, although it should go like this: A,B,C,Č,Ć,D,Dž,Đ,..S,Š,..Z,Ž Alexis. ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#20316: 24.5; `string-lessp' doesn't respect value of LC_COLLATE 2015-04-14 0:55 ` Alexis @ 2015-04-14 14:57 ` Eli Zaretskii 2015-04-14 23:55 ` Alexis 0 siblings, 1 reply; 11+ messages in thread From: Eli Zaretskii @ 2015-04-14 14:57 UTC (permalink / raw) To: Alexis; +Cc: michael.albinus, 20316 > From: Alexis <flexibeast@gmail.com> > Cc: Eli Zaretskii <eliz@gnu.org>, michael.albinus@gmx.de > Date: Tue, 14 Apr 2015 10:55:53 +1000 > > So by default, Emacs sorts disregarding locale-specific ordering, basically using the Unicode codepoints of the characters to order them. > > This makes sense given what you've said above, but can this still be referred to as 'lexicographic' ordering? To me, 'lexicographic ordering' is ordering as per a dictionary for the relevant language, not by codepoint for an arbitrary encoding. Is this wrong? I think we use "lexicographic" for lack of a more accurate word. We could use something like "code point (binary) order", but would that be clear enough to be useful? Note that we are not alone in this; at least this page: http://en.cppreference.com/w/cpp/string/byte/strcoll says that the C function 'strcmp' does a "lexicographical comparison". So do a few other similar pages; google for "difference between strcmp and strcoll". > One of the package's users had imported a set of contacts, then expected to be able to sort those contacts according to Croatian rules, using `org-sort' (from `org.el'). However, to quote the user, this resulted in the contacts being sorted according to the English alphabet rules where the contact entries which start with Croatian characters (Č,Ć,Đ,Š,Ž) are at the end of the list, iow. after 'Z' entries, although it should go like this: > > A,B,C,Č,Ć,D,Dž,Đ,..S,Š,..Z,Ž That's "collation order" in action, note that the diacritic order is applied _after_ the alphabetic order of the base characters. That's what string-collate-lessp does. ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#20316: 24.5; `string-lessp' doesn't respect value of LC_COLLATE 2015-04-14 14:57 ` Eli Zaretskii @ 2015-04-14 23:55 ` Alexis 2015-04-15 1:23 ` Stefan Monnier 0 siblings, 1 reply; 11+ messages in thread From: Alexis @ 2015-04-14 23:55 UTC (permalink / raw) To: 20316; +Cc: michael.albinus Eli Zaretskii <eliz@gnu.org> writes: > I think we use "lexicographic" for lack of a more accurate word. > We could use something like "code point (binary) order", but > would that be clear enough to be useful? i would certainly find that more useful overall, as i think it's less ambiguous (to me) than 'lexicographic order' in this context. i assume it's "code point [according to the overall encoding of the relevant buffer]"? And given your earlier point, i'm guessing it would also be useful to say something along the lines of "If the data being sorted contains multiple encodings, all bets are off"? (Which is relevant in the `org-vcard' case of people possibly trying to sort contacts whose names are based in a variety of locales.) > Note that we are not alone in this; at least this page: > > http://en.cppreference.com/w/cpp/string/byte/strcoll > > says that the C function 'strcmp' does a "lexicographical > comparison". So do a few other similar pages; google for > "difference between strcmp and strcoll". Well, that to me feels like continued holdover from the C+ASCII (or at best Latin-1) 'byte == character' mindset .... >> A,B,C,Č,Ć,D,Dž,Đ,..S,Š,..Z,Ž > > That's "collation order" in action, note that the diacritic > order is applied _after_ the alphabetic order of the base > characters. That's what string-collate-lessp does. *nod* That's why my first thoughts about this issue went to collation settings; given that (it seems to me) Emacs has a far better handle on i18n and m17n issues than most software, i assumed that sorting-by-collation-order would already be available in 24.x. However, given what you've said, i've now got a better understanding of why implementing this is not straightforward. Thanks for taking the time to explain all this! Alexis. ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#20316: 24.5; `string-lessp' doesn't respect value of LC_COLLATE 2015-04-14 23:55 ` Alexis @ 2015-04-15 1:23 ` Stefan Monnier 0 siblings, 0 replies; 11+ messages in thread From: Stefan Monnier @ 2015-04-15 1:23 UTC (permalink / raw) To: Alexis; +Cc: michael.albinus, 20316 > ambiguous (to me) than 'lexicographic order' in this context. i assume it's > "code point [according to the overall encoding of the relevant buffer]"? No, it's "code point according to Unicode" since we use Unicode internally and convert to/from the external encoding during input/output. Stefan ^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#20316: 24.5; `string-lessp' doesn't respect value of LC_COLLATE 2015-04-13 5:22 bug#20316: 24.5; `string-lessp' doesn't respect value of LC_COLLATE Alexis 2015-04-13 5:59 ` Alexis 2015-04-13 6:18 ` Michael Albinus @ 2015-04-13 14:10 ` Paul Eggert 2 siblings, 0 replies; 11+ messages in thread From: Paul Eggert @ 2015-04-13 14:10 UTC (permalink / raw) To: 20316-done Since the problem is already addressed in the trunk and this will appear in the next major release, I'm closing the bug. ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2015-04-15 1:23 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-04-13 5:22 bug#20316: 24.5; `string-lessp' doesn't respect value of LC_COLLATE Alexis 2015-04-13 5:59 ` Alexis 2015-04-13 6:18 ` Michael Albinus 2015-04-13 6:42 ` Alexis 2015-04-13 6:53 ` Michael Albinus 2015-04-13 14:48 ` Eli Zaretskii 2015-04-14 0:55 ` Alexis 2015-04-14 14:57 ` Eli Zaretskii 2015-04-14 23:55 ` Alexis 2015-04-15 1:23 ` Stefan Monnier 2015-04-13 14:10 ` Paul Eggert
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.