convert-mixed-case-symbols

$Revision: 5.0.2.2 $

Function

Package: EXCL

Arguments: (bool &key push pop)

This function affects the behavior of excl:set-case-mode to convert, or not, symbols with mixed upper and lower case characters when it is doing a symbol name conversion operation. It also affects how symbols are created during fasl file reading. If called with the required argument t, excl:set-case-mode will convert mixed case symbols. If this function is called with the required argument nil, excl:set-case-mode will not convert mixed-case symbols.

Symbol name conversion is done for two reasons:

  1. When a call to excl:set-case-mode requires it (when going between upper case and lower case preferred modes).
  2. When reading a fasl file compiled in a case mode other than the current case mode, and those case modes differ in whether upper case or lower case was the preferred mode.

excl:convert-mixed-case-symbols returns the previous value of this switch.

This function is used automatically during (require :winapi) and (require :ole) (both on Windows only) since these modules intentionally contain symbols with mixed case.

The keyword arguments can be used to manage a private stack of values for this function (the stack itself is not accessible directly). If the keyword argument :push is given a non-nil value, then the old value (i.e. the value when this function is called) is pushed on the private stack kept for this function. The call (excl::convert-mixed-case-symbols nil :pop t) restores the setting to the old value at the top of the stack (and pops that value off the saved values stack). When pop is specified true, the required argument is ignored (since the new value comes off the stack).

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