1fdd4e1e0SJan Lentfer /**************************************************************************** 2*32bb5217SDaniel Fojt * Copyright 2020 Thomas E. Dickey * 3*32bb5217SDaniel Fojt * Copyright 1998-2000,2008 Free Software Foundation, Inc. * 4fdd4e1e0SJan Lentfer * * 5fdd4e1e0SJan Lentfer * Permission is hereby granted, free of charge, to any person obtaining a * 6fdd4e1e0SJan Lentfer * copy of this software and associated documentation files (the * 7fdd4e1e0SJan Lentfer * "Software"), to deal in the Software without restriction, including * 8fdd4e1e0SJan Lentfer * without limitation the rights to use, copy, modify, merge, publish, * 9fdd4e1e0SJan Lentfer * distribute, distribute with modifications, sublicense, and/or sell * 10fdd4e1e0SJan Lentfer * copies of the Software, and to permit persons to whom the Software is * 11fdd4e1e0SJan Lentfer * furnished to do so, subject to the following conditions: * 12fdd4e1e0SJan Lentfer * * 13fdd4e1e0SJan Lentfer * The above copyright notice and this permission notice shall be included * 14fdd4e1e0SJan Lentfer * in all copies or substantial portions of the Software. * 15fdd4e1e0SJan Lentfer * * 16fdd4e1e0SJan Lentfer * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * 17fdd4e1e0SJan Lentfer * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * 18fdd4e1e0SJan Lentfer * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * 19fdd4e1e0SJan Lentfer * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * 20fdd4e1e0SJan Lentfer * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * 21fdd4e1e0SJan Lentfer * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * 22fdd4e1e0SJan Lentfer * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * 23fdd4e1e0SJan Lentfer * * 24fdd4e1e0SJan Lentfer * Except as contained in this notice, the name(s) of the above copyright * 25fdd4e1e0SJan Lentfer * holders shall not be used in advertising or otherwise to promote the * 26fdd4e1e0SJan Lentfer * sale, use or other dealings in this Software without prior written * 27fdd4e1e0SJan Lentfer * authorization. * 28fdd4e1e0SJan Lentfer ****************************************************************************/ 29fdd4e1e0SJan Lentfer 30fdd4e1e0SJan Lentfer /**************************************************************************** 31fdd4e1e0SJan Lentfer * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 * 32fdd4e1e0SJan Lentfer * and: Eric S. Raymond <esr@snark.thyrsus.com> * 331d102085SJan Lentfer * and: Thomas E. Dickey 1996-on * 34fdd4e1e0SJan Lentfer ****************************************************************************/ 35fdd4e1e0SJan Lentfer 36*32bb5217SDaniel Fojt /* $Id: capdefaults.c,v 1.15 2020/02/02 23:34:34 tom Exp $ */ 37fdd4e1e0SJan Lentfer 38fdd4e1e0SJan Lentfer /* 39fdd4e1e0SJan Lentfer * Compute obsolete capabilities. The reason this is an include file is 40fdd4e1e0SJan Lentfer * that the two places where it's needed want the macros to generate 41fdd4e1e0SJan Lentfer * offsets to different structures. See the file Caps for explanations of 42fdd4e1e0SJan Lentfer * these conversions. 43fdd4e1e0SJan Lentfer * 44fdd4e1e0SJan Lentfer * Note: This code is the functional inverse of the first part of 45fdd4e1e0SJan Lentfer * postprocess_termcap(). 46fdd4e1e0SJan Lentfer */ 47fdd4e1e0SJan Lentfer { 4800d8f3c4SJohn Marino char *strp; 491d102085SJan Lentfer short capval; 50fdd4e1e0SJan Lentfer 511d102085SJan Lentfer #define EXTRACT_DELAY(str) \ 5200d8f3c4SJohn Marino (short) (strp = strchr(str, '*'), strp ? atoi(strp+1) : 0) 53fdd4e1e0SJan Lentfer 54fdd4e1e0SJan Lentfer /* current (4.4BSD) capabilities marked obsolete */ 55fdd4e1e0SJan Lentfer if (VALID_STRING(carriage_return) 56fdd4e1e0SJan Lentfer && (capval = EXTRACT_DELAY(carriage_return))) 57fdd4e1e0SJan Lentfer carriage_return_delay = capval; 58fdd4e1e0SJan Lentfer if (VALID_STRING(newline) && (capval = EXTRACT_DELAY(newline))) 59fdd4e1e0SJan Lentfer new_line_delay = capval; 60fdd4e1e0SJan Lentfer 61fdd4e1e0SJan Lentfer /* current (4.4BSD) capabilities not obsolete */ 62fdd4e1e0SJan Lentfer if (!VALID_STRING(termcap_init2) && VALID_STRING(init_3string)) { 63fdd4e1e0SJan Lentfer termcap_init2 = init_3string; 64fdd4e1e0SJan Lentfer init_3string = ABSENT_STRING; 65fdd4e1e0SJan Lentfer } 66fdd4e1e0SJan Lentfer if (!VALID_STRING(termcap_reset) 67fdd4e1e0SJan Lentfer && VALID_STRING(reset_2string) 68fdd4e1e0SJan Lentfer && !VALID_STRING(reset_1string) 69fdd4e1e0SJan Lentfer && !VALID_STRING(reset_3string)) { 70fdd4e1e0SJan Lentfer termcap_reset = reset_2string; 71fdd4e1e0SJan Lentfer reset_2string = ABSENT_STRING; 72fdd4e1e0SJan Lentfer } 73fdd4e1e0SJan Lentfer if (magic_cookie_glitch_ul == ABSENT_NUMERIC 74fdd4e1e0SJan Lentfer && magic_cookie_glitch != ABSENT_NUMERIC 75fdd4e1e0SJan Lentfer && VALID_STRING(enter_underline_mode)) 76fdd4e1e0SJan Lentfer magic_cookie_glitch_ul = magic_cookie_glitch; 77fdd4e1e0SJan Lentfer 78fdd4e1e0SJan Lentfer /* totally obsolete capabilities */ 791d102085SJan Lentfer linefeed_is_newline = (char) (VALID_STRING(newline) 801d102085SJan Lentfer && (strcmp("\n", newline) == 0)); 81fdd4e1e0SJan Lentfer if (VALID_STRING(cursor_left) 82fdd4e1e0SJan Lentfer && (capval = EXTRACT_DELAY(cursor_left))) 83fdd4e1e0SJan Lentfer backspace_delay = capval; 84fdd4e1e0SJan Lentfer if (VALID_STRING(tab) && (capval = EXTRACT_DELAY(tab))) 85fdd4e1e0SJan Lentfer horizontal_tab_delay = capval; 86fdd4e1e0SJan Lentfer #undef EXTRACT_DELAY 87fdd4e1e0SJan Lentfer } 88