Package COM.INFORMATIMAGO.COMMON-LISP.CESARUM.CHARACTER

Define features (both at compilation time, load time and execute) for
present semi-standard character names and other ASCII features.

   #+has-rubout    can read #rubout
   #+has-page      can read #page
   #+has-tab       can read #tab
   #+has-backspace can read #backspace
   #+has-return    can read #return
   #+has-linefeed  can read #linefeed

   #+has-escape    can read #escape
   #+has-bell      can read #bell
   #+has-vt        can read #vt
   #+has-null      can read #null

   #+has-ascii-code  The characters in the STANDARD-CHARACTER
                     set are encoded with the ASCII code by
                     char-code, and the codes between 0 and 31
                     inclusive plus 127 have a bijection with
                     other characters, thru code-char and
                     char-code.

   #+newline-is-return   <=> (char= #newline #return)
   #+newline-is-linefeed <=> (char= #newline #linefeed)


License:

    AGPL3

    Copyright Pascal J. Bourguignon 2013 - 2013

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.
    If not, see <http://www.gnu.org/licenses/>

(has-character-named-p name)
function
NAME:       A case-insensitive string designator for the semi-standard
            character names:

                Rubout      The rubout or delete character.
                Page        The form-feed or page-separator character.
                Tab         The tabulate character.
                Backspace   The backspace character.
                Return      The carriage return character.
                Linefeed    The line-feed character.

Return:     Whether reading #{name} will not produce an error.
(push-feature-for-character-named name)
function
NAME:       A case-insensitive string designator for the semi-standard
            character names:

                Rubout      The rubout or delete character.
                Page        The form-feed or page-separator character.
                Tab         The tabulate character.
                Backspace   The backspace character.
                Return      The carriage return character.
                Linefeed    The line-feed character.

DO:         If the implementation has the semi standard character
            named NAME, then push a feature :HAS-{NAME}, with NAME
            upcased.

(standard-character-is-ascii-coded-p)
function
Whether the char-code of the standard-characters are their ASCII codes.
(standard-characters)
function
Return a string containing all the standard-characters.