X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2Flib_dft_fgbg.c;h=8953c148b09eb7674bbed0971045b3ad1fcd3c39;hp=a2dfbd218f740293eb22b0ed82383ceb6a1eb63c;hb=f7b8e526e024ce141e61633e966255400de67772;hpb=0eb88fc5281804773e2a0c7a488a4452463535ce diff --git a/ncurses/base/lib_dft_fgbg.c b/ncurses/base/lib_dft_fgbg.c index a2dfbd21..8953c148 100644 --- a/ncurses/base/lib_dft_fgbg.c +++ b/ncurses/base/lib_dft_fgbg.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998 Free Software Foundation, Inc. * + * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -27,34 +27,49 @@ ****************************************************************************/ /**************************************************************************** - * Author: Thomas E. Dickey 1997 * + * Author: Thomas E. Dickey * ****************************************************************************/ + #include #include -MODULE_ID("$Id: lib_dft_fgbg.c,v 1.3 1998/02/11 12:13:54 tom Exp $") +MODULE_ID("$Id: lib_dft_fgbg.c,v 1.18 2005/11/26 20:03:38 tom Exp $") /* * Modify the behavior of color-pair 0 so that the library doesn't assume that - * it is black on white. This is an extension to XSI curses. - * - * Invoke this function after 'start_color()'. + * it is white on black. This is an extension to XSI curses. */ -int +NCURSES_EXPORT(int) use_default_colors(void) { - T((T_CALLED("use_default_colors()"))); + T((T_CALLED("use_default_colors()"))); + returnCode(assume_default_colors(-1, -1)); +} - if (!SP->_coloron) - returnCode(ERR); +/* + * Modify the behavior of color-pair 0 so that the library assumes that it + * is something specific, possibly not white on black. + */ +NCURSES_EXPORT(int) +assume_default_colors(int fg, int bg) +{ + T((T_CALLED("assume_default_colors(%d,%d)"), fg, bg)); - if (!orig_pair && !orig_colors) - returnCode(ERR); + if (!orig_pair && !orig_colors) + returnCode(ERR); - if (initialize_pair) /* don't know how to handle this */ - returnCode(ERR); + if (initialize_pair) /* don't know how to handle this */ + returnCode(ERR); + SP->_default_color = isDefaultColor(fg) || isDefaultColor(bg); + SP->_has_sgr_39_49 = (tigetflag("AX") == TRUE); + SP->_default_fg = isDefaultColor(fg) ? COLOR_DEFAULT : (fg & C_MASK); + SP->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : (bg & C_MASK); + if (SP->_color_pairs != 0) { + bool save = SP->_default_color; SP->_default_color = TRUE; - SP->_color_pairs[0] = PAIR_OF(C_MASK, C_MASK); - returnCode(OK); + init_pair(0, (short) fg, (short) bg); + SP->_default_color = save; + } + returnCode(OK); }