Function: latin1-display-setup

latin1-display-setup is a byte-compiled function defined in latin1-disp.el.gz.

Signature

(latin1-display-setup SET &optional FORCE)

Documentation

Set up Latin-1 display for characters in the given SET.

SET must be a member of latin1-display-sets. Normally, check whether a font for SET is available and don't set the display if it is.

Source Code

;; Defined in /usr/src/emacs/lisp/international/latin1-disp.el.gz
(defun latin1-display-setup (set &optional _force)
  "Set up Latin-1 display for characters in the given SET.
SET must be a member of `latin1-display-sets'.  Normally, check
whether a font for SET is available and don't set the display if it is."
  (cond
   ((eq set 'latin-2)
    (latin1-display-identities set)
    (mapc
     (lambda (l)
       (or (char-displayable-p (car l))
	   (apply 'latin1-display-char l)))
       '(("'C" "C'")
	 ("'D" "/D")
	 ("'S" "S'")
	 ("'c" "c'")
	 ("'d" "/d")
	 ("'L" "L'")
	 ("'n" "n'")
	 ("'N" "N'")
	 ("'r" "r'")
	 ("'R" "R'")
	 ("'s" "s'")
	 ("'z" "z'")
	 ("'Z" "Z'")
	 ("`A" "A;")
	 ("`E" "E;")
	 ("`L" "/L")
	 ("`S" ",S")
	 ("`T" ",T")
	 ("`Z" "Z^.")
	 ("`a" "a;")
	 ("`l" "/l")
	 ("`e" "e;")
	 ("`s" ",s")
	 ("`t" ",t")
	 ("`z" "z^.")
	 ("`." "'.")
	 ("~A" "A(")
	 ("~C" "C<")
	 ("~D" "D<")
	 ("~E" "E<")
	 ("~e" "e<")
	 ("~L" "L<")
	 ("~N" "N<")
	 ("~O" "O''")
	 ("~R" "R<")
	 ("~S" "S<")
	 ("~T" "T<")
	 ("~U" "U''")
	 ("~Z" "Z<")
	 ("~a" "a(}")
	 ("~c" "c<")
	 ("~d" "d<")
	 ("~l" "l<")
	 ("~n" "n<")
	 ("~o" "o''")
	 ("~r" "r<")
	 ("~s" "s<")
	 ("~t" "t<")
	 ("~u" "u''")
	 ("~z" "z<")
	 ("~v" "'<")			; ?˘ in latin-pre
	 ("~~" "'(")
	 ("uu" "u^0")
	 ("UU" "U^0")
	 ("\"A")
	 ("\"a")
	 ("\"E" "E:")
	 ("\"e")
	 ("''" "'")
	 ("'<")			; Lynx's rendering of caron
	 )))

   ((eq set 'latin-3)
    (latin1-display-identities set)
    (mapc
     (lambda (l)
       (or (char-displayable-p (car l))
	   (apply 'latin1-display-char l)))
       '(("/H")
	 ("~`" "'(")
	 ("^H" "H^")
	 ("^h" "h^")
	 (".I" "I^.")
	 (",S")
	 ("~G" "G(")
	 ("^J" "J^")
	 (".Z" "Z^.")
	 ("/h")
	 (".i" "i^.")
	 (",s")
	 ("~g" "g(")
	 ("^j" "j^")
	 (".Z" "z^.")
	 (".c" "C^.")
	 ("^C" "C^")
	 (".G" "G^.")
	 ("^G" "G^")
	 ("~U" "U(")
	 ("^S" "S^")
	 (".C" "c^.")
	 ("^c" "c^")
	 (".g" "g^.")
	 ("^g" "g^")
	 ("~u" "u(")
	 ("^s" "s^")
	 ("/." "^."))))

   ((eq set 'latin-4)
    (latin1-display-identities set)
    (mapc
     (lambda (l)
       (or (char-displayable-p (car l))
	   (apply 'latin1-display-char l)))
       '(("A," "A;")
	 ("k/" "kk")
	 ("R," ",R")
	 ("I~" "?I")
	 ("L," ",L")
	 ("S~" "S<")
	 ("E-")
	 ("G," ",G")
	 ("T/" "/T")
	 ("Z~" "Z<")
	 ("a," "a;")
	 ("';")
	 ("r," ",r")
	 ("i~" "~i")
	 ("l," ",l")
	 ("'<")
	 ("s~" "s<")
	 ("e-")
	 ("g," ",g")
	 ("t/" "/t")
	 ("N/" "NG")
	 ("z~" "z<")
	 ("n/" "ng")
	 ("A-")
	 ("I," "I;")
	 ("C~" "C<")
	 ("E," "E;")
	 ("E." "E^.")
	 ("I-")
	 ("N," ",N")
	 ("O-")
	 ("K," ",K")
	 ("U," "U;")
	 ("U~" "~U")
	 ("U-")
	 ("a-")
	 ("i," "i;")
	 ("c~" "c<")
	 ("e," "e;")
	 ("e." "e^.")
	 ("i-")
	 ("d/" "/d")
	 ("n," ",n")
	 ("o-")
	 ("k," ",k")
	 ("u," "u;")
	 ("u~" "~u")
	 ("u-")
	 ("^."))))

   ((eq set 'latin-5)
    (latin1-display-identities set)
    (mapc
     (lambda (l)
       (or (char-displayable-p (car l))
	 (apply 'latin1-display-char l)))
       '(("~g" "g(")
	 ("~G" "G(")
	 (".I" "I^.")
	 (",s")
	 (",S")
	 ("^e" "e<")			; from latin-post
	 (".e" "e^.")
	 ("\"i" "i-")		; from latin-post
	 (".i" "i."))))

   ((eq set 'latin-8)
    (latin1-display-identities set)
    (mapc
     (lambda (l)
       (or (char-displayable-p (car l))
	   (apply 'latin1-display-char l)))
       '((?Ḃ ".B" "B`")
	 (?ḃ ".b" "b`")
	 (".c" "c`")
	 (".C" "C`")
	 (?Ḋ ".D" "D`")
	 (?ḋ ".d" "d`")
	 (?ẁ "`w")
	 (?Ẁ "`W")
	 (?ẃ "'w" "w'")
	 (?Ẃ "'W" "W'")
	 (?ỳ "`y")
	 (?Ỳ "`Y")
	 (?ḟ ".f" "f`")
	 (?Ḟ ".F" "F`")
	 (".g" "g`")
	 (".G" "G`")
	 (?ṁ ".m" "m`")
	 (?Ṁ ".M" "M`")
	 (?ṗ ".p" "p`")
	 (?Ṗ ".P" "P`")
	 (?ṡ ".s" "s`")
	 (?Ṡ ".S" "S`")
	 (?ẅ "\"w")
	 (?Ẅ "\"W")
	 ("^w" "w^")
	 ("^W" "W^")
	 (?ṫ ".t" "t`")
	 (?Ṫ ".T" "T`")
	 ("^y" "y^")
	 ("^Y" "Y^")
	 ("\"Y"))))

   ((eq set 'latin-9)
    (latin1-display-identities set)
    (mapc
     (lambda (l)
       (or (char-displayable-p (car l))
	   (apply 'latin1-display-char l)))
       '(("~s" "s<")
	 ("~S" "S<")
	 (?€ "Euro" "E=")
	 ("~z" "z<")
	 ("~Z" "Z<")
	 ("\"Y")
	 ("oe")
	 ("OE"))))

   ((eq set 'greek)
    (mapc
     (lambda (l)
       (or (char-displayable-p (car l))
	   (apply 'latin1-display-char l)))
       '((? "9'")
	 (? "'9")
	 (?― "-M")
	 ("'%")
	 ("'A")
	 ("'E")
	 ("'H")
	 ("'I")
	 ("'O")
	 ("'Y")
	 ("W%")
	 ("i3")
	 ("G*")
	 ("D*")
	 ("TH")
	 ("L*")
	 ("C*")
	 ("P*")
	 ("S*")
	 ("F*")
	 ("Q*")
	 ("W*")
	 ("\"I")
	 ("\"Y")
	 ("a%")
	 ("e%")
	 ("y%")
	 ("i%")
	 ("u3")
	 ("a*")
	 ("b*")
	 ("g*")
	 ("d*")
	 ("e*")
	 ("z*")
	 ("y*")
	 ("h*")
	 ("i*")
	 ("k")
	 ("l*")
	 ("m*")
	 ("n*")
	 ("c*")
	 ("p*")
	 ("r*")
	 ("*s")
	 ("s*")
	 ("t*")
	 ("u")
	 ("f*")
	 ("x*")
	 ("q*")
	 ("w*")
	 ("\"i")
	 ("\"u")
	 ("'o")
	 ("'u")
	 ("'w")))
    (mapc
     (lambda (l)
       (or (char-displayable-p (car l))
	   (aset standard-display-table (car l) (string-to-vector (cadr l)))))
       '(("A")
	 ("B")
	 ("E")
	 ("Z")
	 ("H")
	 ("I")
	 ("J")
	 ("M")
	 ("N")
	 ("O")
	 ("P")
	 ("T")
	 ("Y")
	 ("X")
	 (?ο "o"))))

   ((eq set 'hebrew)
    ;; Don't start with identities, since we don't have definitions
    ;; for a lot of Hebrew in internal.el.  (Intlfonts is also
    ;; missing some glyphs.)
    (let ((i 34))
      (while (<= i 62)
	(let ((ch (decode-char 'hebrew-iso8859-8 i)))
	  (if ch
	      (aset standard-display-table ch
		    (vector (decode-char 'latin-iso8859-1 i)))))
	(setq i (1+ i))))
    (mapc
     (lambda (l)
       (or (char-displayable-p (car l))
	   (aset standard-display-table (car l) (string-to-vector (cadr l)))))
       '((?‗ "=2")
	 ("A+")
	 ("B+")
	 ("G+")
	 ("D+")
	 ("H+")
	 ("W+")
	 ("Z+")
	 ("X+")
	 ("Tj")
	 ("J+")
	 ("K%")
	 ("K+")
	 ("L+")
	 ("M%")
	 ("M+")
	 ("N%")
	 ("N+")
	 ("S+")
	 ("E+")
	 ("P%")
	 ("P+")
	 ("Zj")
	 ("ZJ")
	 ("Q+")
	 ("R+")
	 ("Sh")
	 ("T+"))))

   ;; Arabic probably isn't so useful in the absence of Arabic
   ;; language support...
   ((eq set 'arabic)
    (setq set 'arabic)
    (or (char-displayable-p)
	(aset standard-display-table ?  " "))
    (or (char-displayable-p)
	(aset standard-display-table ?¤ "¤"))
    (or (char-displayable-p)
	(aset standard-display-table ?­ "­"))
    (mapc (lambda (l)
	    (or (char-displayable-p (car l))
		(apply  'latin1-display-char l)))
	    '((",+")
	      (";+")
	      ("?+")
	      ("H'")
	      ("aM")
	      ("aH")
	      ("wH")
	      ("ah")
	      ("yH")
	      ("a+")
	      ("b+")
	      ("tm")
	      ("t+")
	      ("tk")
	      ("g+")
	      ("hk")
	      ("x+")
	      ("d+")
	      ("dk")
	      ("r+")
	      ("z+")
	      ("s+")
	      ("sn")
	      ("c+")
	      ("dd")
	      ("tj")
	      ("zH")
	      ("e+")
	      ("i+")
	      ("++")
	      ("f+")
	      ("q+")
	      ("k+")
	      ("l+")
	      ("m+")
	      ("n+")
	      ("h+")
	      ("w+")
	      ("j+")
	      ("y+")
	      (":+")
	      ("\"+")
	      ("=+")
	      ("/+")
	      ("'+")
	      ("1+")
	      ("3+")
	      ("0+"))))

   ((eq set 'cyrillic)
    (setq set 'cyrillic-iso)
    (mapc
     (lambda (l)
       (or (char-displayable-p (car l))
	   (apply 'latin1-display-char l)))
       '(("Dj")
	 ("Gj")
	 ("IE")
	 ("Lj")
	 ("Nj")
	 ("Ts")
	 ("Kj")
	 ("V%")
	 ("Dzh")
	 ("B=")
	 ("â")
	 ("D")
	 ("Z%")
	 ("3")
	 ("U")
	 ("J=")
	 ("L=")
	 ("P=")
	 ("Y")
	 ("è")
	 ("C=")
	 ("C%")
	 ("S%")
	 ("Sc")
	 ("=\"")
	 ("Y=")
	 ("%\"")
	 ("Ee")
	 ("Yu")
	 ("Ya")
	 ("b")
	 ("v=")
	 ("g=")
	 ("g")
	 ("z%")
	 ("z=")
	 ("u")
	 ("j=")
	 ("k")
	 ("l=")
	 ("m=")
	 ("n=")
	 (?п "n")
	 ("p")
	 ("t=")
	 ("f=")
	 ("c=")
	 ("c%")
	 ("s%")
	 ("sc")
	 ("='")
	 ("y=")
	 ("%'")
	 ("ee")
	 ("yu")
	 ("ya")
	 (?№ "N0")
	 ("dj")
	 ("gj")
	 ("ie")
	 ("lj")
	 ("nj")
	 ("ts")
	 ("kj")
	 ("v%")
	 ("dzh")))
    (mapc
     (lambda (l)
       (or (char-displayable-p (car l))
	   (aset standard-display-table (car l) (string-to-vector (cadr l)))))
       '(("Ë")
	 ("S")
	 ("I")
	 ("Ï")
	 ("J")
	 ("ë")
	 ("§")
	 ("-")
	 ("A")
	 ("B")
	 ("E")
	 ("K")
	 ("M")
	 ("H")
	 ("O")
	 ("P")
	 ("C")
	 ("T")
	 ("X")
	 ("a")
	 ("e")
	 ("o")
	 ("c")
	 ("y")
	 ("x")
	 ("s")
	 ("i")
	 ("ï")
	 ("j"))))

   (t (error "Unsupported character set: %S" set)))

  (sit-for 0))