src/events/scancodes_linux.h
author Sam Lantinga <slouken@libsdl.org>
Mon, 07 Feb 2011 09:37:11 -0800
changeset 5218 572a73d71b5f
parent 5081 25d4feb7c127
child 5219 c1a92e61907d
permissions -rw-r--r--
Sheena pointed out that "scancode" and "keysym" are single words and shouldn't be camel-cased.
slouken@2305
     1
/*
slouken@2305
     2
    SDL - Simple DirectMedia Layer
slouken@3697
     3
    Copyright (C) 1997-2010 Sam Lantinga
slouken@2305
     4
slouken@2305
     5
    This library is free software; you can redistribute it and/or
slouken@2305
     6
    modify it under the terms of the GNU Lesser General Public
slouken@2305
     7
    License as published by the Free Software Foundation; either
slouken@2305
     8
    version 2.1 of the License, or (at your option) any later version.
slouken@2305
     9
slouken@2305
    10
    This library is distributed in the hope that it will be useful,
slouken@2305
    11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
slouken@2305
    12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
slouken@2305
    13
    Lesser General Public License for more details.
slouken@2305
    14
slouken@2305
    15
    You should have received a copy of the GNU Lesser General Public
slouken@2305
    16
    License along with this library; if not, write to the Free Software
slouken@2305
    17
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
slouken@2305
    18
slouken@2305
    19
    Sam Lantinga
slouken@2305
    20
    slouken@libsdl.org
slouken@2305
    21
*/
slouken@2305
    22
#include "../../include/SDL_scancode.h"
slouken@2305
    23
slouken@2305
    24
/* Linux virtual key code to SDLKey mapping table
slouken@2305
    25
   Sources:
slouken@2305
    26
   - Linux kernel source input.h
slouken@2305
    27
*/
slouken@2305
    28
/* *INDENT-OFF* */
slouken@5218
    29
static SDL_Scancode const linux_scancode_table[] = {
slouken@2305
    30
    /*  0 */    SDL_SCANCODE_UNKNOWN,
slouken@2305
    31
    /*  1 */    SDL_SCANCODE_ESCAPE,
slouken@2305
    32
    /*  2 */    SDL_SCANCODE_1,
slouken@2305
    33
    /*  3 */    SDL_SCANCODE_2,
slouken@2305
    34
    /*  4 */    SDL_SCANCODE_3,
slouken@2305
    35
    /*  5 */    SDL_SCANCODE_4,
slouken@2305
    36
    /*  6 */    SDL_SCANCODE_5,
slouken@2305
    37
    /*  7 */    SDL_SCANCODE_6,
slouken@2305
    38
    /*  8 */    SDL_SCANCODE_7,
slouken@2305
    39
    /*  9 */    SDL_SCANCODE_8,
slouken@2305
    40
    /*  10 */    SDL_SCANCODE_9,
slouken@2305
    41
    /*  11 */    SDL_SCANCODE_0,
slouken@2305
    42
    /*  12 */    SDL_SCANCODE_MINUS,
slouken@2305
    43
    /*  13 */    SDL_SCANCODE_EQUALS,
slouken@2305
    44
    /*  14 */    SDL_SCANCODE_BACKSPACE,
slouken@2305
    45
    /*  15 */    SDL_SCANCODE_TAB,
slouken@2305
    46
    /*  16 */    SDL_SCANCODE_Q,
slouken@2305
    47
    /*  17 */    SDL_SCANCODE_W,
slouken@2305
    48
    /*  18 */    SDL_SCANCODE_E,
slouken@2305
    49
    /*  19 */    SDL_SCANCODE_R,
slouken@2305
    50
    /*  20 */    SDL_SCANCODE_T,
slouken@2305
    51
    /*  21 */    SDL_SCANCODE_Y,
slouken@2305
    52
    /*  22 */    SDL_SCANCODE_U,
slouken@2305
    53
    /*  23 */    SDL_SCANCODE_I,
slouken@2305
    54
    /*  24 */    SDL_SCANCODE_O,
slouken@2305
    55
    /*  25 */    SDL_SCANCODE_P,
slouken@2305
    56
    /*  26 */    SDL_SCANCODE_LEFTBRACKET,
slouken@2305
    57
    /*  27 */    SDL_SCANCODE_RIGHTBRACKET,
slouken@2305
    58
    /*  28 */    SDL_SCANCODE_RETURN,
slouken@2305
    59
    /*  29 */    SDL_SCANCODE_LCTRL,
slouken@2305
    60
    /*  30 */    SDL_SCANCODE_A,
slouken@2305
    61
    /*  31 */    SDL_SCANCODE_S,
slouken@2305
    62
    /*  32 */    SDL_SCANCODE_D,
slouken@2305
    63
    /*  33 */    SDL_SCANCODE_F,
slouken@2305
    64
    /*  34 */    SDL_SCANCODE_G,
slouken@2305
    65
    /*  35 */    SDL_SCANCODE_H,
slouken@2305
    66
    /*  36 */    SDL_SCANCODE_J,
slouken@2305
    67
    /*  37 */    SDL_SCANCODE_K,
slouken@2305
    68
    /*  38 */    SDL_SCANCODE_L,
slouken@2305
    69
    /*  39 */    SDL_SCANCODE_SEMICOLON,
slouken@2305
    70
    /*  40 */    SDL_SCANCODE_APOSTROPHE,
slouken@2305
    71
    /*  41 */    SDL_SCANCODE_GRAVE,
slouken@2305
    72
    /*  42 */    SDL_SCANCODE_LSHIFT,
slouken@2305
    73
    /*  43 */    SDL_SCANCODE_BACKSLASH,
slouken@2305
    74
    /*  44 */    SDL_SCANCODE_Z,
slouken@2305
    75
    /*  45 */    SDL_SCANCODE_X,
slouken@2305
    76
    /*  46 */    SDL_SCANCODE_C,
slouken@2305
    77
    /*  47 */    SDL_SCANCODE_V,
slouken@2305
    78
    /*  48 */    SDL_SCANCODE_B,
slouken@2305
    79
    /*  49 */    SDL_SCANCODE_N,
slouken@2305
    80
    /*  50 */    SDL_SCANCODE_M,
slouken@2305
    81
    /*  51 */    SDL_SCANCODE_COMMA,
slouken@2305
    82
    /*  52 */    SDL_SCANCODE_PERIOD,
slouken@2305
    83
    /*  53 */    SDL_SCANCODE_SLASH,
slouken@2305
    84
    /*  54 */    SDL_SCANCODE_RSHIFT,
slouken@2305
    85
    /*  55 */    SDL_SCANCODE_KP_MULTIPLY,
slouken@2305
    86
    /*  56 */    SDL_SCANCODE_LALT,
slouken@2305
    87
    /*  57 */    SDL_SCANCODE_SPACE,
slouken@2305
    88
    /*  58 */    SDL_SCANCODE_CAPSLOCK,
slouken@2305
    89
    /*  59 */    SDL_SCANCODE_F1,
slouken@2305
    90
    /*  60 */    SDL_SCANCODE_F2,
slouken@2305
    91
    /*  61 */    SDL_SCANCODE_F3,
slouken@2305
    92
    /*  62 */    SDL_SCANCODE_F4,
slouken@2305
    93
    /*  63 */    SDL_SCANCODE_F5,
slouken@2305
    94
    /*  64 */    SDL_SCANCODE_F6,
slouken@2305
    95
    /*  65 */    SDL_SCANCODE_F7,
slouken@2305
    96
    /*  66 */    SDL_SCANCODE_F8,
slouken@2305
    97
    /*  67 */    SDL_SCANCODE_F9,
slouken@2305
    98
    /*  68 */    SDL_SCANCODE_F10,
slouken@2305
    99
    /*  69 */    SDL_SCANCODE_NUMLOCKCLEAR,
slouken@2305
   100
    /*  70 */    SDL_SCANCODE_SCROLLLOCK,
slouken@2305
   101
    /*  71 */    SDL_SCANCODE_KP_7,
slouken@2305
   102
    /*  72 */    SDL_SCANCODE_KP_8,
slouken@2305
   103
    /*  73 */    SDL_SCANCODE_KP_9,
slouken@2305
   104
    /*  74 */    SDL_SCANCODE_KP_MINUS,
slouken@2305
   105
    /*  75 */    SDL_SCANCODE_KP_4,
slouken@2305
   106
    /*  76 */    SDL_SCANCODE_KP_5,
slouken@2305
   107
    /*  77 */    SDL_SCANCODE_KP_6,
slouken@2305
   108
    /*  78 */    SDL_SCANCODE_KP_PLUS,
slouken@2305
   109
    /*  79 */    SDL_SCANCODE_KP_1,
slouken@2305
   110
    /*  80 */    SDL_SCANCODE_KP_2,
slouken@2305
   111
    /*  81 */    SDL_SCANCODE_KP_3,
slouken@2305
   112
    /*  82 */    SDL_SCANCODE_KP_0,
slouken@2305
   113
    /*  83 */    SDL_SCANCODE_KP_PERIOD,
slouken@2305
   114
    0,
slouken@2305
   115
    /*  85 */    SDL_SCANCODE_UNKNOWN, /* KEY_ZENKAKUHANKAKU */
slouken@2305
   116
    /*  86 */    SDL_SCANCODE_NONUSBACKSLASH, /* KEY_102ND */
slouken@2305
   117
    /*  87 */    SDL_SCANCODE_F11,
slouken@2305
   118
    /*  88 */    SDL_SCANCODE_F12,
slouken@2305
   119
    /*  89 */    SDL_SCANCODE_INTERNATIONAL1, /* KEY_RO */
slouken@2305
   120
    /*  90 */    SDL_SCANCODE_LANG3, /* KEY_KATAKANA */
slouken@2305
   121
    /*  91 */    SDL_SCANCODE_LANG4, /* KEY_HIRAGANA */
slouken@2305
   122
    /*  92 */    SDL_SCANCODE_INTERNATIONAL4, /* KEY_HENKAN */
slouken@2305
   123
    /*  93 */    SDL_SCANCODE_INTERNATIONAL2, /* KEY_KATAKANAHIRAGANA */
slouken@2305
   124
    /*  94 */    SDL_SCANCODE_INTERNATIONAL5, /* KEY_MUHENKAN */
slouken@2305
   125
    /*  95 */    SDL_SCANCODE_INTERNATIONAL5, /* KEY_KPJPCOMMA */
slouken@2305
   126
    /*  96 */    SDL_SCANCODE_KP_ENTER,
slouken@2305
   127
    /*  97 */    SDL_SCANCODE_RCTRL,
slouken@2305
   128
    /*  98 */    SDL_SCANCODE_KP_DIVIDE,
slouken@2305
   129
    /*  99 */    SDL_SCANCODE_SYSREQ,
slouken@2305
   130
    /*  100 */    SDL_SCANCODE_RALT,
slouken@2305
   131
    /*  101 */    SDL_SCANCODE_UNKNOWN, /* KEY_LINEFEED */
slouken@2305
   132
    /*  102 */    SDL_SCANCODE_HOME,
slouken@2305
   133
    /*  103 */    SDL_SCANCODE_UP,
slouken@2305
   134
    /*  104 */    SDL_SCANCODE_PAGEUP,
slouken@2305
   135
    /*  105 */    SDL_SCANCODE_LEFT,
slouken@2305
   136
    /*  106 */    SDL_SCANCODE_RIGHT,
slouken@2305
   137
    /*  107 */    SDL_SCANCODE_END,
slouken@2305
   138
    /*  108 */    SDL_SCANCODE_DOWN,
slouken@2305
   139
    /*  109 */    SDL_SCANCODE_PAGEDOWN,
slouken@2305
   140
    /*  110 */    SDL_SCANCODE_INSERT,
slouken@2305
   141
    /*  111 */    SDL_SCANCODE_DELETE,
slouken@2305
   142
    /*  112 */    SDL_SCANCODE_UNKNOWN, /* KEY_MACRO */
slouken@2305
   143
    /*  113 */    SDL_SCANCODE_MUTE,
slouken@2305
   144
    /*  114 */    SDL_SCANCODE_VOLUMEDOWN,
slouken@2305
   145
    /*  115 */    SDL_SCANCODE_VOLUMEUP,
slouken@2305
   146
    /*  116 */    SDL_SCANCODE_POWER,
slouken@2305
   147
    /*  117 */    SDL_SCANCODE_KP_EQUALS,
slouken@2305
   148
    /*  118 */    SDL_SCANCODE_KP_PLUSMINUS,
slouken@2305
   149
    /*  119 */    SDL_SCANCODE_PAUSE,
slouken@2305
   150
    0,
slouken@2305
   151
    /*  121 */    SDL_SCANCODE_KP_COMMA,
slouken@2305
   152
    /*  122 */    SDL_SCANCODE_LANG1, /* KEY_HANGUEL */
slouken@2305
   153
    /*  123 */    SDL_SCANCODE_LANG2, /* KEY_HANJA */
slouken@2305
   154
    /*  124 */    SDL_SCANCODE_INTERNATIONAL3, /* KEY_YEN */
slouken@2305
   155
    /*  125 */    SDL_SCANCODE_LGUI,
slouken@2305
   156
    /*  126 */    SDL_SCANCODE_RGUI,
slouken@2305
   157
    /*  127 */    SDL_SCANCODE_UNKNOWN, /* KEY_COMPOSE */
slouken@2305
   158
    /*  128 */    SDL_SCANCODE_STOP,
slouken@2305
   159
    /*  129 */    SDL_SCANCODE_AGAIN,
slouken@2305
   160
    /*  130 */    SDL_SCANCODE_UNKNOWN, /* KEY_PROPS */
slouken@2305
   161
    /*  131 */    SDL_SCANCODE_UNDO,
slouken@2305
   162
    /*  132 */    SDL_SCANCODE_UNKNOWN, /* KEY_FRONT */
slouken@2305
   163
    /*  133 */    SDL_SCANCODE_COPY,
slouken@2305
   164
    /*  134 */    SDL_SCANCODE_UNKNOWN, /* KEY_OPEN */
slouken@2305
   165
    /*  135 */    SDL_SCANCODE_PASTE,
slouken@2305
   166
    /*  136 */    SDL_SCANCODE_FIND,
slouken@2305
   167
    /*  137 */    SDL_SCANCODE_CUT,
slouken@2305
   168
    /*  138 */    SDL_SCANCODE_HELP,
slouken@2305
   169
    /*  139 */    SDL_SCANCODE_MENU,
slouken@2305
   170
    /*  140 */    SDL_SCANCODE_CALCULATOR,
slouken@2305
   171
    /*  141 */    SDL_SCANCODE_UNKNOWN, /* KEY_SETUP */
slouken@2305
   172
    /*  142 */    SDL_SCANCODE_SLEEP,
slouken@2305
   173
    /*  143 */    SDL_SCANCODE_UNKNOWN, /* KEY_WAKEUP */
slouken@2305
   174
    /*  144 */    SDL_SCANCODE_UNKNOWN, /* KEY_FILE */
slouken@2305
   175
    /*  145 */    SDL_SCANCODE_UNKNOWN, /* KEY_SENDFILE */
slouken@2305
   176
    /*  146 */    SDL_SCANCODE_UNKNOWN, /* KEY_DELETEFILE */
slouken@2305
   177
    /*  147 */    SDL_SCANCODE_UNKNOWN, /* KEY_XFER */
slouken@2305
   178
    /*  148 */    SDL_SCANCODE_UNKNOWN, /* KEY_PROG1 */
slouken@2305
   179
    /*  149 */    SDL_SCANCODE_UNKNOWN, /* KEY_PROG2 */
slouken@2305
   180
    /*  150 */    SDL_SCANCODE_UNKNOWN, /* KEY_WWW */
slouken@2305
   181
    /*  151 */    SDL_SCANCODE_UNKNOWN, /* KEY_MSDOS */
slouken@2305
   182
    /*  152 */    SDL_SCANCODE_UNKNOWN, /* KEY_COFFEE */
slouken@2305
   183
    /*  153 */    SDL_SCANCODE_UNKNOWN, /* KEY_DIRECTION */
slouken@2305
   184
    /*  154 */    SDL_SCANCODE_UNKNOWN, /* KEY_CYCLEWINDOWS */
slouken@2305
   185
    /*  155 */    SDL_SCANCODE_MAIL,
slouken@2305
   186
    /*  156 */    SDL_SCANCODE_AC_BOOKMARKS,
slouken@2305
   187
    /*  157 */    SDL_SCANCODE_COMPUTER,
slouken@2305
   188
    /*  158 */    SDL_SCANCODE_AC_BACK,
slouken@2305
   189
    /*  159 */    SDL_SCANCODE_AC_FORWARD,
slouken@2305
   190
    /*  160 */    SDL_SCANCODE_UNKNOWN, /* KEY_CLOSECD */
slouken@2305
   191
    /*  161 */    SDL_SCANCODE_EJECT, /* KEY_EJECTCD */
slouken@2305
   192
    /*  162 */    SDL_SCANCODE_UNKNOWN, /* KEY_EJECTCLOSECD */
slouken@2305
   193
    /*  163 */    SDL_SCANCODE_AUDIONEXT, /* KEY_NEXTSONG */
slouken@2305
   194
    /*  164 */    SDL_SCANCODE_AUDIOPLAY, /* KEY_PLAYPAUSE */
slouken@2305
   195
    /*  165 */    SDL_SCANCODE_AUDIOPREV, /* KEY_PREVIOUSSONG */
slouken@2305
   196
    /*  166 */    SDL_SCANCODE_UNKNOWN, /* KEY_STOPCD */
slouken@2305
   197
    /*  167 */    SDL_SCANCODE_UNKNOWN, /* KEY_RECORD */
slouken@2305
   198
    /*  168 */    SDL_SCANCODE_UNKNOWN, /* KEY_REWIND */
slouken@2305
   199
    /*  169 */    SDL_SCANCODE_UNKNOWN, /* KEY_PHONE */
slouken@2305
   200
    /*  170 */    SDL_SCANCODE_UNKNOWN, /* KEY_ISO */
slouken@2305
   201
    /*  171 */    SDL_SCANCODE_UNKNOWN, /* KEY_CONFIG */
slouken@2305
   202
    /*  172 */    SDL_SCANCODE_AC_HOME,
slouken@2305
   203
    /*  173 */    SDL_SCANCODE_AC_REFRESH,
slouken@2305
   204
    /*  174 */    SDL_SCANCODE_UNKNOWN, /* KEY_EXIT */
slouken@2305
   205
    /*  175 */    SDL_SCANCODE_UNKNOWN, /* KEY_MOVE */
slouken@2305
   206
    /*  176 */    SDL_SCANCODE_UNKNOWN, /* KEY_EDIT */
slouken@2305
   207
    /*  177 */    SDL_SCANCODE_UNKNOWN, /* KEY_SCROLLUP */
slouken@2305
   208
    /*  178 */    SDL_SCANCODE_UNKNOWN, /* KEY_SCROLLDOWN */
slouken@2305
   209
    /*  179 */    SDL_SCANCODE_KP_LEFTPAREN,
slouken@2305
   210
    /*  180 */    SDL_SCANCODE_KP_RIGHTPAREN,
slouken@2305
   211
    /*  181 */    SDL_SCANCODE_UNKNOWN, /* KEY_NEW */
slouken@2305
   212
    /*  182 */    SDL_SCANCODE_UNKNOWN, /* KEY_REDO */
slouken@2305
   213
    /*  183 */    SDL_SCANCODE_F13,
slouken@2305
   214
    /*  184 */    SDL_SCANCODE_F14,
slouken@2305
   215
    /*  185 */    SDL_SCANCODE_F15,
slouken@2305
   216
    /*  186 */    SDL_SCANCODE_F16,
slouken@2305
   217
    /*  187 */    SDL_SCANCODE_F17,
slouken@2305
   218
    /*  188 */    SDL_SCANCODE_F18,
slouken@2305
   219
    /*  189 */    SDL_SCANCODE_F19,
slouken@2305
   220
    /*  190 */    SDL_SCANCODE_F20,
slouken@2305
   221
    /*  191 */    SDL_SCANCODE_F21,
slouken@2305
   222
    /*  192 */    SDL_SCANCODE_F22,
slouken@2305
   223
    /*  193 */    SDL_SCANCODE_F23,
slouken@2305
   224
    /*  194 */    SDL_SCANCODE_F24,
slouken@2305
   225
    0, 0, 0, 0,
slouken@2305
   226
    /*  200 */    SDL_SCANCODE_UNKNOWN, /* KEY_PLAYCD */
slouken@2305
   227
    /*  201 */    SDL_SCANCODE_UNKNOWN, /* KEY_PAUSECD */
slouken@2305
   228
    /*  202 */    SDL_SCANCODE_UNKNOWN, /* KEY_PROG3 */
slouken@2305
   229
    /*  203 */    SDL_SCANCODE_UNKNOWN, /* KEY_PROG4 */
slouken@2305
   230
    0,
slouken@2305
   231
    /*  205 */    SDL_SCANCODE_UNKNOWN, /* KEY_SUSPEND */
slouken@2305
   232
    /*  206 */    SDL_SCANCODE_UNKNOWN, /* KEY_CLOSE */
slouken@2305
   233
    /*  207 */    SDL_SCANCODE_UNKNOWN, /* KEY_PLAY */
slouken@2305
   234
    /*  208 */    SDL_SCANCODE_UNKNOWN, /* KEY_FASTFORWARD */
slouken@2305
   235
    /*  209 */    SDL_SCANCODE_UNKNOWN, /* KEY_BASSBOOST */
slouken@2305
   236
    /*  210 */    SDL_SCANCODE_UNKNOWN, /* KEY_PRINT */
slouken@2305
   237
    /*  211 */    SDL_SCANCODE_UNKNOWN, /* KEY_HP */
slouken@2305
   238
    /*  212 */    SDL_SCANCODE_UNKNOWN, /* KEY_CAMERA */
slouken@2305
   239
    /*  213 */    SDL_SCANCODE_UNKNOWN, /* KEY_SOUND */
slouken@2305
   240
    /*  214 */    SDL_SCANCODE_UNKNOWN, /* KEY_QUESTION */
slouken@2305
   241
    /*  215 */    SDL_SCANCODE_UNKNOWN, /* KEY_EMAIL */
slouken@2305
   242
    /*  216 */    SDL_SCANCODE_UNKNOWN, /* KEY_CHAT */
slouken@2305
   243
    /*  217 */    SDL_SCANCODE_AC_SEARCH,
slouken@2305
   244
    /*  218 */    SDL_SCANCODE_UNKNOWN, /* KEY_CONNECT */
slouken@2305
   245
    /*  219 */    SDL_SCANCODE_UNKNOWN, /* KEY_FINANCE */
slouken@2305
   246
    /*  220 */    SDL_SCANCODE_UNKNOWN, /* KEY_SPORT */
slouken@2305
   247
    /*  221 */    SDL_SCANCODE_UNKNOWN, /* KEY_SHOP */
slouken@2305
   248
    /*  222 */    SDL_SCANCODE_ALTERASE,
slouken@2305
   249
    /*  223 */    SDL_SCANCODE_CANCEL,
slouken@2305
   250
    /*  224 */    SDL_SCANCODE_BRIGHTNESSDOWN,
slouken@2305
   251
    /*  225 */    SDL_SCANCODE_BRIGHTNESSUP,
slouken@2305
   252
    /*  226 */    SDL_SCANCODE_UNKNOWN, /* KEY_MEDIA */
slouken@2305
   253
    /*  227 */    SDL_SCANCODE_DISPLAYSWITCH, /* KEY_SWITCHVIDEOMODE */
slouken@2305
   254
    /*  228 */    SDL_SCANCODE_KBDILLUMTOGGLE,
slouken@2305
   255
    /*  229 */    SDL_SCANCODE_KBDILLUMDOWN,
slouken@2305
   256
    /*  230 */    SDL_SCANCODE_KBDILLUMUP,
slouken@2305
   257
    /*  231 */    SDL_SCANCODE_UNKNOWN, /* KEY_SEND */
slouken@2305
   258
    /*  232 */    SDL_SCANCODE_UNKNOWN, /* KEY_REPLY */
slouken@2305
   259
    /*  233 */    SDL_SCANCODE_UNKNOWN, /* KEY_FORWARDMAIL */
slouken@2305
   260
    /*  234 */    SDL_SCANCODE_UNKNOWN, /* KEY_SAVE */
slouken@2305
   261
    /*  235 */    SDL_SCANCODE_UNKNOWN, /* KEY_DOCUMENTS */
slouken@2305
   262
    /*  236 */    SDL_SCANCODE_UNKNOWN, /* KEY_BATTERY */
slouken@2305
   263
};
slouken@2305
   264
/* *INDENT-ON* */