Subject: bug#24724: 25.1; Arabic Printing Problem

From: Waleed Yousef <[email-masked]>
Date: Tue, 18 Oct 2016 16:21:45 +0000

When I write Arabic in Emacs buffer, it writes well. However, to print
the buffer I use ps-spool-buffer, then save the buffer to tmp.ps then
open using gs. However, the ps file has letters in revers order. I use
this in my .emacs:

(require 'ps-print)
 (eval-after-load 'ps-print
  '(progn
     (require 'ps-mule)
     (setq ps-multibyte-buffer 'bdf-font) ;; print everything with bdf
     (setq ps-font-size 10) ;; change according your tastes
     (setq bdf-directory-list '("/usr/share/fonts/MyBDF"))
     (setq ps-mule-font-info-database-bdf
	   '((unicode-bmp  ; everything in the world should be printed with this font
	      (normal bdf "djvmono.bdf")
	      (bold bdf "djvmono-b.bdf")
	      (italic bdf "djvmono-o.bdf")
	      (bold-italic bdf "djvmono-bo.bdf"))
	     (iso-8859-1   ; please, latin-1 TOO, I said everything!
	      (normal bdf "djvmono.bdf")
	      (bold bdf "djvmono-b.bdf")
	      (italic bdf "djvmono-o.bdf")
	      (bold-italic bdf "djvmono-bo.bdf"))))))

In GNU Emacs 25.1.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.20.9)
 of 2016-09-18 built on juergen
Windowing system distributor 'The X.Org Foundation', version 11.0.11804000
Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --with-x-toolkit=gtk3 --with-xft
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe
 -fstack-protector-strong' CPPFLAGS=-D_FORTIFY_SOURCE=2
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11

Important settings:
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
  openwith-mode: t
  dired-async-mode: t
  ido-grid-mode: t
  ido-everywhere: t
  shell-dirtrack-mode: t
  pdf-occur-global-minor-mode: t
  delete-selection-mode: t
  override-global-mode: t
  show-smartparens-global-mode: t
  show-smartparens-mode: t
  smartparens-global-mode: t
  smartparens-global-strict-mode: t
  smartparens-strict-mode: t
  smartparens-mode: t
  show-paren-mode: t
  guide-key-mode: t
  winner-mode: t
  image-diredx-async-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
Saving file /home/wyousef/.emacs...
Wrote /home/wyousef/.emacs
Formatting...done
File ‘~/Downloads/tmp.ps’ exists; overwrite? (y or n) y
A buffer is visiting /home/wyousef/Downloads/tmp.ps; proceed? (y or n) y
Type C-c C-c to toggle between editing or viewing the document.
Saving file /home/wyousef/Downloads/tmp.ps...
Wrote /home/wyousef/Downloads/tmp.ps
C-x C-g is undefined
Quit

Load-path shadows:
~/.emacs.d/loadpath/ps-mule hides /usr/share/emacs/25.1/lisp/ps-mule
~/.emacs.d/loadpath/subr-x hides /usr/share/emacs/25.1/lisp/emacs-lisp/subr-x

Features:
(shadow sort mail-extr emacsbug message idna rfc822 mml mml-sec epg
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mail-utils man align
tabify two-column iso-transl face-remap gnus-dired autorevert filenotify
pcmpl-unix em-unix em-term term disp-table ehelp em-script em-prompt
em-ls em-hist em-pred em-glob em-dirs em-cmpl em-basic em-banner
em-alias esh-var esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg
esh-groups eshell esh-module esh-mode esh-util doc-view subr-x ps-mode
smie ps-bdf flyspell ispell ace-window avy misearch multi-isearch
sage-view sage-mode apropos sage-compat tramp-cache
python-el-fgallina-expansions smartparens-python python tramp-sh json
map sage sage-load reftex reftex-vars magic-latex-buffer iimage
smartparens-latex tex-mode dired-tar openwith dired-async async dired+
image-file dired-x dired-aux ido-grid-mode ido bbdb bbdb-site timezone
impatient-mode htmlize cl simple-httpd url-util bash-completion tramp
tramp-compat tramp-loaddefs trampver shell pcomplete eimp warnings
ps-mule ps-print ps-def lpr pdftools pdf-occur ibuf-ext ibuffer tablist
tablist-filter semantic/wisent/comp semantic/wisent
semantic/wisent/wisent semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local find-func cedet
pdf-isearch let-alist pdf-misc imenu pdf-tools compile comint ansi-color
cus-edit cus-start cus-load wid-edit pdf-view bookmark pp jka-compr
pdf-cache pdf-info tq pdf-util image-mode delsel ffap url-parse
auth-source eieio eieio-core cl-macs gnus-util mm-util help-fns
mail-prsvr password-cache url-vars expand-region text-mode-expansions
er-basic-expansions expand-region-core expand-region-custom bind-key
easy-mmode smartparens-config smartparens thingatpt paren guide-key s
ucs-normalize popwin dash re-builder smart-mode-line-dark-theme
smart-mode-line-light-theme cl-seq smart-mode-line rich-minority
faff-theme winner ring edmacro kmacro finder-inf tex-site
bash-completion-autoloads bbdb--autoloads bbdb-csv-import-autoloads
image-dired+ image-dired format-spec dired advice log4e-autoloads
openwith-autoloads pcsv-autoloads professional-theme-autoloads rx
w3-autoloads info package epg-config seq byte-opt gv bytecomp
byte-compile cl-extra help-mode easymenu cconv cl-loaddefs pcase cl-lib
time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel x-win term/common-win x-dnd 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 cl-generic cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer cl-preloaded 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 dbusbind inotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 498762 33596)
 (symbols 48 44593 0)
 (miscs 40 1114 1007)
 (strings 32 105615 16866)
 (string-bytes 1 3339653)
 (vectors 16 68923)
 (vector-slots 8 2071717 198621)
 (floats 8 719 996)
 (intervals 56 6938 867)
 (buffers 976 47))