1 /* 2 * Copyright (c) 1993-2017, 2019 Paul Mattes. 3 * Copyright (c) 1990, Jeff Sparkes. 4 * Copyright (c) 1989, Georgia Tech Research Corporation (GTRC), Atlanta, 5 * GA 30332. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * * Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * * Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * * Neither the names of Paul Mattes, Jeff Sparkes, GTRC nor their 17 * contributors may be used to endorse or promote products derived 18 * from this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY PAUL MATTES, JEFF SPARKES AND GTRC "AS IS" 21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 22 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, JEFF SPARKES OR 24 * GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 25 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT 26 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 27 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 29 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33 /* 34 * resources.c 35 * Resource definitions for x3270. 36 */ 37 38 #include "globals.h" 39 #include "appres.h" 40 #include "resources.h" 41 #include "xappres.h" 42 43 #include <X11/StringDefs.h> 44 45 #include "resourcesc.h" 46 47 #define offset(field) XtOffset(AppResptr, field) 48 XtResource resources[] = { 49 { ResSaveLines, ClsSaveLines, XtRInt, sizeof(int), 50 offset(interactive.save_lines), XtRString, "4096" }, 51 { ResUnlockDelayMs, ClsUnlockDelayMs, XtRInt, sizeof(int), 52 offset(unlock_delay_ms), XtRString, "350" }, 53 { ResScriptPort, ClsScriptPort, XtRString, sizeof(String), 54 offset(script_port), XtRString, 0 }, 55 { ResHttpd, ClsHttpd, XtRString, sizeof(String), 56 offset(httpd_port), XtRString, 0 }, 57 { ResLoginMacro, ClsLoginMacro, XtRString, sizeof(String), 58 offset(login_macro), XtRString, 0 }, 59 { ResOversize, ClsOversize, XtRString, sizeof(char *), 60 offset(oversize), XtRString, 0 }, 61 { ResConfDir, ClsConfDir, XtRString, sizeof(char *), 62 offset(conf_dir), XtRString, LIBX3270DIR }, 63 { ResModel, ClsModel, XtRString, sizeof(char *), 64 offset(model), XtRString, "3279-4-E" }, 65 { ResKeymap, ClsKeymap, XtRString, sizeof(char *), 66 offset(interactive.key_map), XtRString, 0 }, 67 { ResComposeMap, ClsComposeMap, XtRString, sizeof(char *), 68 offset(interactive.compose_map), XtRString, "latin1" }, 69 { ResHostsFile, ClsHostsFile, XtRString, sizeof(char *), 70 offset(hostsfile), XtRString, 0 }, 71 { ResPort, ClsPort, XtRString, sizeof(char *), 72 offset(port), XtRString, "telnet" }, 73 { ResCharset, ClsCharset, XtRString, sizeof(char *), 74 offset(charset), XtRString, 0 }, 75 { ResCodePage, ClsCodePage, XtRString, sizeof(char *), 76 offset(codepage), XtRString, 0 }, 77 { ResSbcsCgcsgid, ClsSbcsCgcsgid, XtRString, sizeof(char *), 78 offset(sbcs_cgcsgid), XtRString, 0 }, 79 { ResTermName, ClsTermName, XtRString, sizeof(char *), 80 offset(termname), XtRString, 0 }, 81 { ResDevName, ClsDevName, XtRString, sizeof(char *), 82 offset(devname), XtRString, 0 }, 83 { ResUser, ClsUser, XtRString, sizeof(char *), 84 offset(user), XtRString, 0 }, 85 { ResMacros, ClsMacros, XtRString, sizeof(char *), 86 offset(macros), XtRString, 0 }, 87 { ResTraceDir, ClsTraceDir, XtRString, sizeof(char *), 88 offset(trace_dir), XtRString, "/tmp" }, 89 { ResTraceFile, ClsTraceFile, XtRString, sizeof(char *), 90 offset(trace_file), XtRString, 0 }, 91 { ResTraceFileSize, ClsTraceFileSize, XtRString, sizeof(char *), 92 offset(trace_file_size), XtRString, 0 }, 93 { ResScreenTraceFile, ClsScreenTraceFile, XtRString, sizeof(char *), 94 offset(screentrace.file), XtRString, 0 }, 95 { ResScreenTraceTarget, ClsScreenTraceTarget, XtRString, sizeof(char *), 96 offset(screentrace.target), XtRString, 0 }, 97 { ResScreenTraceType, ClsScreenTraceType, XtRString, sizeof(char *), 98 offset(screentrace.type), XtRString, 0 }, 99 { ResConnectFileName, ClsConnectFileName, XtRString, sizeof(String), 100 offset(connectfile_name), XtRString, "~/.x3270connect" }, 101 { ResIdleCommand, ClsIdleCommand, XtRString, sizeof(String), 102 offset(idle_command), XtRString, 0 }, 103 { ResIdleTimeout, ClsIdleTimeout, XtRString, sizeof(String), 104 offset(idle_timeout), XtRString, 0 }, 105 { ResProxy, ClsProxy, XtRString, sizeof(String), 106 offset(proxy), XtRString, 0 }, 107 { ResHostname, ClsHostname, XtRString, sizeof(String), 108 offset(hostname), XtRString, 0 }, 109 { ResMaxRecent, ClsMaxRecent, XtRInt, sizeof(int), 110 offset(max_recent), XtRString, "5" }, 111 { ResSuppressActions, ClsSuppressActions, XtRString, sizeof(String), 112 offset(suppress_actions), XtRString, 0 }, 113 { ResCrosshairColor, ClsCrosshairColor, XtRString, sizeof(String), 114 offset(interactive.crosshair_color), XtRString, "purple" }, 115 { ResConnectTimeout, ClsConnectTimeout, XtRInt, sizeof(int), 116 offset(connect_timeout), XtRString, "0" }, 117 { ResConsole, ClsConsole, XtRString, sizeof(char *), 118 offset(interactive.console), XtRString, 0 }, 119 { ResNopSeconds, ClsNopSeconds, XtRInt, sizeof(int), 120 offset(nop_seconds), XtRString, "0" }, 121 { ResMinVersion, ClsMinVersion, XtRString, sizeof(String), 122 offset(min_version), XtRString, 0 }, 123 124 { ResErase, ClsErase, XtRString, sizeof(char *), 125 offset(linemode.erase), XtRString, "^?" }, 126 { ResKill, ClsKill, XtRString, sizeof(char *), 127 offset(linemode.kill), XtRString, "^U" }, 128 { ResWerase, ClsWerase, XtRString, sizeof(char *), 129 offset(linemode.werase), XtRString, "^W" }, 130 { ResRprnt, ClsRprnt, XtRString, sizeof(char *), 131 offset(linemode.rprnt), XtRString, "^R" }, 132 { ResLnext, ClsLnext, XtRString, sizeof(char *), 133 offset(linemode.lnext), XtRString, "^V" }, 134 { ResIntr, ClsIntr, XtRString, sizeof(char *), 135 offset(linemode.intr), XtRString, "^C" }, 136 { ResQuit, ClsQuit, XtRString, sizeof(char *), 137 offset(linemode.quit), XtRString, "^\\" }, 138 { ResEof, ClsEof, XtRString, sizeof(char *), 139 offset(linemode.eof), XtRString, "^D" }, 140 141 { ResPrinterLu, ClsPrinterLu, XtRString, sizeof(char *), 142 offset(interactive.printer_lu), XtRString, 0 }, 143 { ResDbcsCgcsgid, ClsDbcsCgcsgid, XtRString, sizeof(char *), 144 offset(dbcs_cgcsgid), XtRString, 0 }, 145 { ResAcceptHostname, ClsAcceptHostname, XtRString, sizeof(char *), 146 offset(tls.accept_hostname), XtRString, 0 }, 147 { ResCaDir, ClsCaDir, XtRString, sizeof(char *), 148 offset(tls.ca_dir), XtRString, 0 }, 149 { ResCaFile, ClsCaFile, XtRString, sizeof(char *), 150 offset(tls.ca_file), XtRString, 0 }, 151 { ResCertFile, ClsCertFile, XtRString, sizeof(char *), 152 offset(tls.cert_file), XtRString, 0 }, 153 { ResCertFileType, ClsCertFileType, XtRString, sizeof(char *), 154 offset(tls.cert_file_type), XtRString, 0 }, 155 { ResChainFile, ClsChainFile, XtRString, sizeof(char *), 156 offset(tls.chain_file), XtRString, 0 }, 157 { ResKeyFile, ClsKeyFile, XtRString, sizeof(char *), 158 offset(tls.key_file), XtRString, 0 }, 159 { ResKeyFileType, ClsKeyFileType, XtRString, sizeof(char *), 160 offset(tls.key_file_type), XtRString, 0 }, 161 { ResKeyPasswd, ClsKeyPasswd, XtRString, sizeof(char *), 162 offset(tls.key_passwd), XtRString, 0 }, 163 164 { ResFtAllocation, ClsFtAllocation, XtRString, sizeof(char *), 165 offset(ft.allocation), XtRString, 0 }, 166 { ResFtAvblock, ClsFtAvblock, XtRInt, sizeof(int), 167 offset(ft.avblock), XtRString, "0" }, 168 { ResFtBlksize, ClsFtBlksize, XtRInt, sizeof(int), 169 offset(ft.blksize), XtRString, "0" }, 170 { ResFtBufferSize, ClsFtBufferSize, XtRInt, sizeof(int), 171 offset(ft.dft_buffer_size), XtRString, STR(DFT_BUF) }, 172 { ResFtCr, ClsFtCr, XtRString, sizeof(char *), 173 offset(ft.cr), XtRString, 0 }, 174 { ResFtDirection, ClsFtDirection, XtRString, sizeof(char *), 175 offset(ft.direction), XtRString, 0 }, 176 { ResFtExist, ClsFtExist, XtRString, sizeof(char *), 177 offset(ft.exist), XtRString, 0 }, 178 { ResFtHost, ClsFtHost, XtRString, sizeof(char *), 179 offset(ft.host), XtRString, 0 }, 180 { ResFtHostFile, ClsFtHostFile, XtRString, sizeof(char *), 181 offset(ft.host_file), XtRString, 0 }, 182 { ResFtLocalFile, ClsFtLocalFile, XtRString, sizeof(char *), 183 offset(ft.local_file), XtRString, 0 }, 184 { ResFtLrecl, ClsFtLrecl, XtRInt, sizeof(int), 185 offset(ft.lrecl), XtRString, "0" }, 186 { ResFtMode, ClsFtMode, XtRString, sizeof(char *), 187 offset(ft.mode), XtRString, 0 }, 188 { ResFtPrimarySpace, ClsFtPrimarySpace, XtRInt, sizeof(int), 189 offset(ft.primary_space), XtRString, "0" }, 190 { ResFtRecfm, ClsFtRecfm, XtRString, sizeof(char *), 191 offset(ft.recfm), XtRString, 0 }, 192 { ResFtRemap, ClsFtRemap, XtRString, sizeof(char *), 193 offset(ft.remap), XtRString, 0 }, 194 { ResFtSecondarySpace, ClsFtSecondarySpace, XtRInt, sizeof(int), 195 offset(ft.secondary_space), XtRString, "0" }, 196 }; 197 #undef offset 198 199 Cardinal num_resources = XtNumber(resources); 200 201 #define offset(field) XtOffset(xappresptr_t, field) 202 #define boffset(field) XtOffset(xappresptr_t, bools.field) 203 #define btoffset(index) boffset(toggle[index]) 204 XtResource xresources[] = { 205 { XtNforeground, XtCForeground, XtRPixel, sizeof(Pixel), 206 offset(foreground), XtRString, "XtDefaultForeground" }, 207 { XtNbackground, XtCBackground, XtRPixel, sizeof(Pixel), 208 offset(background), XtRString, "XtDefaultBackground" }, 209 { ResNormalCursor, ClsNormalCursor, XtRCursor, sizeof(Cursor), 210 offset(normal_mcursor), XtRString, "top_left_arrow" }, 211 { ResWaitCursor, ClsWaitCursor, XtRCursor, sizeof(Cursor), 212 offset(wait_mcursor), XtRString, "watch" }, 213 { ResLockedCursor, ClsLockedCursor, XtRCursor, sizeof(Cursor), 214 offset(locked_mcursor), XtRString, "X_cursor" }, 215 216 { ResColorBackground, ClsColorBackground, XtRString, sizeof(String), 217 offset(colorbg_name), XtRString, "black" }, 218 { ResSelectBackground, ClsSelectBackground, XtRString, sizeof(String), 219 offset(selbg_name), XtRString, "dim gray" }, 220 { ResNormalColor, ClsNormalColor, XtRString, sizeof(String), 221 offset(normal_name), XtRString, "green" }, 222 { ResInputColor, ClsInputColor, XtRString, sizeof(String), 223 offset(select_name), XtRString, "green" }, 224 { ResBoldColor, ClsBoldColor, XtRString, sizeof(String), 225 offset(bold_name), XtRString, "green" }, 226 { ResCursorColor, ClsCursorColor, XtRString, sizeof(String), 227 offset(cursor_color_name), XtRString, "red" }, 228 { ResKeypad, ClsKeypad, XtRString, sizeof(String), 229 offset(keypad), XtRString, KpRight }, 230 { ResKeypadOn, ClsKeypadOn, XtRBoolean, sizeof(Boolean), 231 offset(keypad_on), XtRString, ResFalse }, 232 { ResAplCircledAlpha, ClsAplCircledAlpha, XtRBoolean, sizeof(Boolean), 233 offset(apl_circled_alpha), XtRString, ResFalse }, 234 { ResInvertKeypadShift, ClsInvertKeypadShift, XtRBoolean, sizeof(Boolean), 235 offset(invert_kpshift), XtRString, ResFalse }, 236 { ResActiveIcon, ClsActiveIcon, XtRBoolean, sizeof(Boolean), 237 offset(active_icon), XtRString, ResFalse }, 238 { ResLabelIcon, ClsLabelIcon, XtRBoolean, sizeof(Boolean), 239 offset(label_icon), XtRString, ResFalse }, 240 { ResKeypadBackground, ClsKeypadBackground, XtRString, sizeof(String), 241 offset(keypadbg_name), XtRString, "grey70" }, 242 { ResEmulatorFont, ClsEmulatorFont, XtRString, sizeof(char *), 243 offset(efontname), XtRString, 0 }, 244 { ResUseCursorColor, ClsUseCursorColor, XtRBoolean, sizeof(Boolean), 245 offset(use_cursor_color), XtRString, ResFalse }, 246 { ResVisualSelect, ClsVisualSelect, XtRBoolean, sizeof(Boolean), 247 offset(visual_select), XtRString, ResFalse }, 248 { ResSuppressHost, ClsSuppressHost, XtRBoolean, sizeof(Boolean), 249 offset(suppress_host), XtRString, ResFalse }, 250 { ResSuppressFontMenu, ClsSuppressFontMenu, XtRBoolean, sizeof(Boolean), 251 offset(suppress_font_menu), XtRString, ResFalse }, 252 { ResAllowResize, ClsAllowResize, XtRBoolean, sizeof(Boolean), 253 offset(allow_resize), XtRString, ResTrue }, 254 { ResNoOther, ClsNoOther, XtRBoolean, sizeof(Boolean), 255 offset(no_other), XtRString, ResFalse }, 256 { ResBellVolume, ClsBellVolume, XtRInt, sizeof(int), 257 offset(bell_volume), XtRString, "0" }, 258 { ResCharClass, ClsCharClass, XtRString, sizeof(char *), 259 offset(char_class), XtRString, 0 }, 260 { ResModifiedSelColor, ClsModifiedSelColor, XtRInt, sizeof(int), 261 offset(modified_sel_color), XtRString, "10" }, 262 { ResVisualSelectColor, ClsVisualSelectColor, XtRInt, sizeof(int), 263 offset(visual_select_color), XtRString, "6" }, 264 { ResIconFont, ClsIconFont, XtRString, sizeof(char *), 265 offset(icon_font), XtRString, "nil2" }, 266 { ResIconLabelFont, ClsIconLabelFont, XtRString, sizeof(char *), 267 offset(icon_label_font), XtRString, "8x13" }, 268 { ResFixedSize, ClsFixedSize, XtRString, sizeof(char *), 269 offset(fixed_size), XtRString, 0 }, 270 { ResColorScheme, ClsColorScheme, XtRString, sizeof(String), 271 offset(color_scheme), XtRString, "default" }, 272 { ResInputMethod, ClsInputMethod, XtRString, sizeof(char *), 273 offset(input_method), XtRString, 0 }, 274 { ResPreeditType, ClsPreeditType, XtRString, sizeof(char *), 275 offset(preedit_type), XtRString, PT_OVER_THE_SPOT "+1" }, 276 { ResDpi, ClsDpi, XtRString, sizeof(char *), 277 offset(dpi), XtRString, 0 }, 278 { ResXQuartzHack, ClsXQuartzHack, XtRBoolean, sizeof(Boolean), 279 offset(xquartz_hack), XtRString, "false" }, 280 281 #if defined(USE_APP_DEFAULTS) /*[*/ 282 { ResAdVersion, ClsAdVersion, XtRString, sizeof(char *), 283 offset(ad_version), XtRString, 0 }, 284 #endif /*]*/ 285 286 { ResMono, ClsMono, XtRBoolean, sizeof(Boolean), 287 boffset(interactive.mono), XtRString, ResFalse }, 288 { ResMenuBar, ClsMenuBar, XtRBoolean, sizeof(Boolean), 289 boffset(interactive.menubar), XtRString, ResTrue }, 290 { ResVisualBell, ClsVisualBell, XtRBoolean, sizeof(Boolean), 291 boffset(interactive.visual_bell), XtRString, ResFalse }, 292 { ResOnce, ClsOnce, XtRBoolean, sizeof(Boolean), 293 boffset(once), XtRString, ResFalse }, 294 { ResScripted, ClsScripted, XtRBoolean, sizeof(Boolean), 295 boffset(scripted), XtRString, ResFalse }, 296 { ResModifiedSel, ClsModifiedSel, XtRBoolean, sizeof(Boolean), 297 boffset(modified_sel), XtRString, ResFalse }, 298 { ResUnlockDelay, ClsUnlockDelay, XtRBoolean, sizeof(Boolean), 299 boffset(unlock_delay), XtRString, ResTrue }, 300 { ResBindLimit, ClsBindLimit, XtRBoolean, sizeof(Boolean), 301 boffset(bind_limit), XtRString, ResTrue }, 302 { ResBindUnlock, ClsBindUnlock, XtRBoolean, sizeof(Boolean), 303 boffset(bind_unlock), XtRString, ResFalse }, 304 { ResNewEnviron, ClsNewEnviron, XtRBoolean, sizeof(Boolean), 305 boffset(new_environ), XtRString, ResTrue }, 306 { ResSocket, ClsSocket, XtRBoolean, sizeof(Boolean), 307 boffset(socket), XtRString, ResFalse }, 308 { ResReconnect, ClsReconnect, XtRBoolean, sizeof(Boolean), 309 boffset(interactive.reconnect), XtRString, ResFalse }, 310 { ResDoConfirms, ClsDoConfirms, XtRBoolean, sizeof(Boolean), 311 boffset(interactive.do_confirms), XtRString, ResTrue }, 312 { ResNumericLock, ClsNumericLock, XtRBoolean, sizeof(Boolean), 313 boffset(numeric_lock), XtRString, ResFalse }, 314 { ResSecure, ClsSecure, XtRBoolean, sizeof(Boolean), 315 boffset(secure), XtRString, ResFalse }, 316 { ResOerrLock, ClsOerrLock, XtRBoolean, sizeof(Boolean), 317 boffset(oerr_lock), XtRString, ResTrue }, 318 { ResDebugTracing, ClsDebugTracing, XtRBoolean, sizeof(Boolean), 319 boffset(debug_tracing), XtRString, ResTrue }, 320 { ResDisconnectClear, ClsDisconnectClear, XtRBoolean, sizeof(Boolean), 321 boffset(disconnect_clear), XtRString, ResFalse }, 322 { ResHighlightBold, ClsHighlightBold, XtRBoolean, sizeof(Boolean), 323 boffset(highlight_bold), XtRString, ResFalse }, 324 { ResBsdTm, ClsBsdTm, XtRBoolean, sizeof(Boolean), 325 boffset(bsd_tm), XtRString, ResFalse }, 326 { ResTraceMonitor, ClsTraceMonitor, XtRBoolean, sizeof(Boolean), 327 boffset(trace_monitor), XtRString, ResTrue }, 328 { ResIdleCommandEnabled, ClsIdleCommandEnabled, XtRBoolean, sizeof(Boolean), 329 boffset(idle_command_enabled), XtRString, ResFalse }, 330 { ResNvtMode, ClsNvtMode, XtRBoolean, sizeof(Boolean), 331 boffset(nvt_mode), XtRString, ResFalse }, 332 { ResScriptPortOnce, ClsScriptPortOnce, XtRBoolean, sizeof(Boolean), 333 boffset(script_port_once), XtRString, ResFalse }, 334 { ResUtf8, ClsUtf8, XtRBoolean, sizeof(Boolean), 335 boffset(utf8), XtRString, ResFalse }, 336 337 { ResMonoCase, ClsMonoCase, XtRBoolean, sizeof(Boolean), 338 btoffset(MONOCASE), XtRString, ResFalse }, 339 { ResAltCursor, ClsAltCursor, XtRBoolean, sizeof(Boolean), 340 btoffset(ALT_CURSOR), XtRString, ResFalse }, 341 { ResCursorBlink, ClsCursorBlink, XtRBoolean, sizeof(Boolean), 342 btoffset(CURSOR_BLINK), XtRString, ResFalse }, 343 { ResShowTiming, ClsShowTiming, XtRBoolean, sizeof(Boolean), 344 btoffset(SHOW_TIMING), XtRString, ResFalse }, 345 { ResTrace, ClsTrace, XtRBoolean, sizeof(Boolean), 346 btoffset(TRACING), XtRString, ResFalse }, 347 { ResScrollBar, ClsScrollBar, XtRBoolean, sizeof(Boolean), 348 btoffset(SCROLL_BAR), XtRString, ResTrue }, 349 { ResLineWrap, ClsLineWrap, XtRBoolean, sizeof(Boolean), 350 btoffset(LINE_WRAP), XtRString, ResTrue }, 351 { ResBlankFill, ClsBlankFill, XtRBoolean, sizeof(Boolean), 352 btoffset(BLANK_FILL), XtRString, ResTrue }, 353 { ResScreenTrace, ClsScreenTrace, XtRBoolean, sizeof(Boolean), 354 btoffset(SCREEN_TRACE), XtRString, ResFalse }, 355 { ResMarginedPaste, ClsMarginedPaste, XtRBoolean, sizeof(Boolean), 356 btoffset(MARGINED_PASTE), XtRString, ResFalse }, 357 { ResRectangleSelect, ClsRectangleSelect, XtRBoolean, sizeof(Boolean), 358 btoffset(RECTANGLE_SELECT), XtRString, ResFalse }, 359 { ResCrosshair, ClsCrosshair, XtRBoolean, sizeof(Boolean), 360 btoffset(CROSSHAIR), XtRString, ResFalse }, 361 { ResVisibleControl, ClsVisibleControl, XtRBoolean, sizeof(Boolean), 362 btoffset(VISIBLE_CONTROL), XtRString, ResFalse }, 363 { ResAidWait, ClsAidWait, XtRBoolean, sizeof(Boolean), 364 btoffset(AID_WAIT), XtRString, ResTrue }, 365 { ResOverlayPaste, ClsOverlayPaste, XtRBoolean, sizeof(Boolean), 366 btoffset(OVERLAY_PASTE), XtRString, ResFalse }, 367 { ResTypeahead, ClsTypeahead, XtRBoolean, sizeof(Boolean), 368 btoffset(TYPEAHEAD), XtRString, ResTrue }, 369 { ResAplMode, ClsAplMode, XtRBoolean, sizeof(Boolean), 370 btoffset(APL_MODE), XtRString, ResFalse }, 371 { ResAlwaysInsert, ClsAlwaysInsert, XtRBoolean, sizeof(Boolean), 372 btoffset(ALWAYS_INSERT), XtRString, ResFalse }, 373 { ResRightToLeftMode, ClsRightToLeftMode, XtRBoolean, sizeof(Boolean), 374 btoffset(RIGHT_TO_LEFT), XtRString, ResFalse }, 375 { ResReverseInputMode, ClsReverseInputMode, XtRBoolean, sizeof(Boolean), 376 btoffset(REVERSE_INPUT), XtRString, ResFalse }, 377 { ResInsertMode, ClsInsertMode, XtRBoolean, sizeof(Boolean), 378 btoffset(INSERT_MODE), XtRString, ResFalse }, 379 380 { ResIcrnl, ClsIcrnl, XtRBoolean, sizeof(Boolean), 381 boffset(linemode.icrnl), XtRString, ResTrue }, 382 { ResInlcr, ClsInlcr, XtRBoolean, sizeof(Boolean), 383 boffset(linemode.inlcr), XtRString, ResFalse }, 384 { ResOnlcr, ClsOnlcr, XtRBoolean, sizeof(Boolean), 385 boffset(linemode.onlcr), XtRString, ResTrue }, 386 387 { ResStartTls, ClsStartTls, XtRBoolean, sizeof(Boolean), 388 boffset(tls.starttls), XtRString, ResTrue }, 389 { ResVerifyHostCert, ClsVerifyHostCert, XtRBoolean, sizeof(Boolean), 390 boffset(tls.verify_host_cert), XtRString, ResTrue }, 391 }; 392 393 Cardinal num_xresources = XtNumber(xresources); 394