1 /* A very minimal do-nothing termcap emulation stub. 2 3 Copyright (C) 2005-2020 Free Software Foundation, Inc. 4 5 Contributed by CodeSourcery, LLC. 6 7 This file is part of GDB. 8 9 This program is free software; you can redistribute it and/or modify 10 it under the terms of the GNU General Public License as published by 11 the Free Software Foundation; either version 3 of the License, or 12 (at your option) any later version. 13 14 This program is distributed in the hope that it will be useful, 15 but WITHOUT ANY WARRANTY; without even the implied warranty of 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 GNU General Public License for more details. 18 19 You should have received a copy of the GNU General Public License 20 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 21 22 23 #include "defs.h" 24 25 extern "C" { 26 27 /* -Wmissing-prototypes */ 28 extern int tgetent (char *buffer, char *termtype); 29 extern int tgetnum (char *name); 30 extern int tgetflag (char *name); 31 extern char* tgetstr (char *name, char **area); 32 extern int tputs (char *string, int nlines, int (*outfun) (int)); 33 extern char *tgoto (const char *cap, int col, int row); 34 35 } 36 37 /* These globals below are global termcap variables that readline 38 references. 39 40 Actually, depending on preprocessor conditions that we don't want 41 to mirror here (as they may change depending on readline versions), 42 readline may define these globals as well, relying on the linker 43 merging them if needed (-fcommon). That doesn't work with 44 -fno-common or C++, so instead we define the symbols as weak. 45 Don't do this on Windows though, as MinGW gcc 3.4.2 doesn't support 46 weak (later versions, e.g., 4.8, do support it). Given this stub 47 file originally was Windows only, and we only needed this when we 48 made it work on other hosts, it should be OK. */ 49 #ifndef __MINGW32__ 50 char PC __attribute__((weak)); 51 char *BC __attribute__((weak)); 52 char *UP __attribute__((weak)); 53 #endif 54 55 /* Each of the files below is a minimal implementation of the standard 56 termcap function with the same name, suitable for use in a Windows 57 console window, or when a real termcap/curses library isn't 58 available. */ 59 60 int 61 tgetent (char *buffer, char *termtype) 62 { 63 return -1; 64 } 65 66 int 67 tgetnum (char *name) 68 { 69 return -1; 70 } 71 72 int 73 tgetflag (char *name) 74 { 75 return -1; 76 } 77 78 char * 79 tgetstr (char *name, char **area) 80 { 81 return NULL; 82 } 83 84 int 85 tputs (char *string, int nlines, int (*outfun) (int)) 86 { 87 while (*string) 88 outfun (*string++); 89 90 return 0; 91 } 92 93 char * 94 tgoto (const char *cap, int col, int row) 95 { 96 return NULL; 97 } 98