(FILECREATED "10-Jan-85 16:32:33" {ERIS}<LISPNEW>SOURCES>FONTUNPARSEPATCH.;1 3367
changes to: (VARS FONTUNPARSEPATCHCOMS)
previous date: "10-Jan-85 10:17:06" {ERIS}<LISPCORE>DIG>FONTUNPARSEPATCH.;1)
(* Copyright (c) 1985 by Xerox Corporation. All rights reserved.)
(PRETTYCOMPRINT FONTUNPARSEPATCHCOMS)
(RPAQQ FONTUNPARSEPATCHCOMS ((FNS \FONTFACE FONTUNPARSE)))
(DEFINEQ
(\FONTFACE
[LAMBDA (FACE NOERRORFLG) (* rmk: "10-Jan-85 16:31")
(* Takes a variety of user specifications and converts
them to a standard FONTFACE record.)
(PROG NIL
[RETURN (COND
((type? FONTFACE FACE)
FACE)
[(LITATOM FACE)
(OR (U-CASEP FACE)
(SETQ FACE (U-CASE FACE)))
(SELECTQ FACE
((NIL MRR STANDARD NNN) (* NNN is to compensate for Harmony bug in FONTUNPARSE)
(CONSTANT (create FONTFACE)))
[(ITALIC MIR)
(CONSTANT (create FONTFACE
SLOPE ←(QUOTE ITALIC]
[(BOLD BRR)
(CONSTANT (create FONTFACE
WEIGHT ←(QUOTE BOLD]
[(BOLDITALIC BIR)
(CONSTANT (create FONTFACE
WEIGHT ←(QUOTE BOLD)
SLOPE ←(QUOTE ITALIC]
(create FONTFACE
WEIGHT ←(SELCHARQ (NTHCHARCODE FACE 1)
(M (QUOTE MEDIUM))
(B (QUOTE BOLD))
(L (QUOTE LIGHT))
(GO ERROR))
SLOPE ←(SELCHARQ (NTHCHARCODE FACE 2)
(R (QUOTE REGULAR))
(I (QUOTE ITALIC))
(GO ERROR))
EXPANSION ←(SELCHARQ (NTHCHARCODE FACE 3)
(R (QUOTE REGULAR))
(C (QUOTE COMPRESSED))
(E (QUOTE EXPANDED))
(GO ERROR]
(T (GO ERROR]
ERROR
(COND
(NOERRORFLG (RETURN NIL))
(T (\ILLEGAL.ARG FACE])
(FONTUNPARSE
[LAMBDA (FONT) (* rmk: "10-Jan-85 10:13")
(* Used by TEDIT, should be flushed after Harmony)
(PROG [FACE (SPEC (COND
((type? FONTDESCRIPTOR FONT)
(FONTPROP FONT (QUOTE SPEC)))
(T (* Could be a non-instantiated specification of a
fontclass, just use it as the spec without creating the
font.)
FONT]
(OR SPEC (RETURN))
(SETQ FACE (CADDR SPEC))
[SETQ FACE (if [AND FACE (NOT (EQUAL FACE (QUOTE (MEDIUM REGULAR REGULAR]
then (PACK* (NTHCHAR (CAR FACE)
1)
(NTHCHAR (CADR FACE)
1)
(NTHCHAR (CADDR FACE)
1] (* Don't return device, or any trailing defaults)
(RETURN (CONS (CAR SPEC)
(CONS (CADR SPEC)
(if (AND (CADDDR SPEC)
(NEQ 0 (CADDDR SPEC)))
then (LIST FACE (CADDDR SPEC))
elseif FACE
then (CONS FACE])
)
(PUTPROPS FONTUNPARSEPATCH COPYRIGHT ("Xerox Corporation" 1985))
(DECLARE: DONTCOPY
(FILEMAP (NIL (394 3280 (\FONTFACE 404 . 2047) (FONTUNPARSE 2049 . 3278)))))
STOP