ics-target-case

$Revision: 5.0.2.3 $

Special operator

Package: EXCL

Arguments: (&body clauses)

This special operator is only relevant for people who are uning International Allegro CL (which supports extended character sets). See iacl.htm.

Sometimes it is necessary to conditionalize your code depending on whether it will be running on an ICS-capable system. excl:ics-target-case provides this conditionalization, causing the compiler to compile the containing form in both modes. It can be used both at top level of a file compilation and inside a function body. Simple examples:

(excl:ics-target-case
  (:-ics (defvar banner "Regular Allegro"))
  (:+ics (defvar banner "ICS-Capable Allegro")))
 
(defun string-size-in-bytes (string)
  (* 8
     (ceiling (+ 5
                 (excl:ics-target-case
                   (:-ics (length string))
                   (:+ics (* 2 (length string)))))
       8)))

Two alternate versions of both the defvar and the function will be file-compiled, and the correct version selected at fasl load time. In each of the examples, the ics-target-case form could have been wrapped around a different boundary in the code with equivalent effect, for example:

(defvar banner (excl:ics-target-case
                 (:-ics "Regular Allegro")
                 (:+ics "ICS-Capable Allegro")))

See iacl.htm for general information on International Allegro CL.

The general documentation description is in introduction.htm. The index is in index.htm.

Copyright (C) 1998-1999, Franz Inc., Berkeley, CA. All Rights Reserved.