home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright (C) 1994 Marc Parmet.
- * This file is part of the Macintosh port of GNU Emacs.
- *
- * GNU Emacs 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 General Public License for more details.
- */
-
- #define MODIFIER_KEYS (controlKey | optionKey | alphaLock | shiftKey | cmdKey)
- #define metaKey 1
- #define MODIFIER_XVECTOR(X) ((struct keyboard_patch_vector *)((X) & ((1<<26)-1)))
-
- #define PATCH_MAGIC 0xabcdef89
-
- typedef pascal long (*KeyTransProcPtr)(Ptr,short,long *);
-
- enum {
- uppKeyTransProcInfo = kPascalStackBased
- | RESULT_SIZE(SIZE_CODE(sizeof(long)))
- | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Ptr)))
- | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
- | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long *)))
- };
-
- #if defined(powerc)
- #pragma options align=mac68k
- #endif
-
- struct keyboard_patch_data {
- long version;
- UniversalProcPtr original;
- ProcessSerialNumber emacs_psn;
- long *v;
- };
-
- struct keyboard_patch_vector { // This mimics a Lisp_Vector.
- long size;
- long fill;
- struct modifier_code_pair {
- long typed;
- long denoted;
- } contents[1];
- };
-
- #if defined(powerc)
- #pragma options align=reset
- #endif
-