~ubuntu-branches/debian/sid/ncurses/sid-200908151543

« back to all changes in this revision

Viewing changes to ncurses/base/lib_dft_fgbg.c

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Baumann
  • Date: 2009-05-24 15:13:01 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20090524151301-uixgxq2zonfov2nr
Tags: 5.7+20090523-1
MergingĀ upstreamĀ versionĀ 5.7+20090523.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/****************************************************************************
2
 
 * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
 
2
 * Copyright (c) 1998-2005,2009 Free Software Foundation, Inc.              *
3
3
 *                                                                          *
4
4
 * Permission is hereby granted, free of charge, to any person obtaining a  *
5
5
 * copy of this software and associated documentation files (the            *
27
27
 ****************************************************************************/
28
28
 
29
29
/****************************************************************************
30
 
 *  Author: Thomas E. Dickey                                                *
 
30
 *  Author: Thomas E. Dickey          1998-on                               *
 
31
 *          Juergen Pfeifer           2009                                  *
31
32
 ****************************************************************************/
32
33
 
33
34
#include <curses.priv.h>
34
 
#include <term.h>
35
 
 
36
 
MODULE_ID("$Id: lib_dft_fgbg.c,v 1.18 2005/11/26 20:03:38 tom Exp $")
 
35
 
 
36
#ifndef CUR
 
37
#define CUR SP_TERMTYPE
 
38
#endif
 
39
 
 
40
MODULE_ID("$Id: lib_dft_fgbg.c,v 1.23 2009/05/23 23:04:15 tom Exp $")
37
41
 
38
42
/*
39
43
 * Modify the behavior of color-pair 0 so that the library doesn't assume that
40
44
 * it is white on black.  This is an extension to XSI curses.
41
45
 */
42
46
NCURSES_EXPORT(int)
 
47
NCURSES_SP_NAME(use_default_colors) (NCURSES_SP_DCL0)
 
48
{
 
49
    T((T_CALLED("use_default_colors(%p)"), SP_PARM));
 
50
    returnCode(NCURSES_SP_NAME(assume_default_colors) (NCURSES_SP_ARGx -1, -1));
 
51
}
 
52
 
 
53
#if NCURSES_SP_FUNCS
 
54
NCURSES_EXPORT(int)
43
55
use_default_colors(void)
44
56
{
45
 
    T((T_CALLED("use_default_colors()")));
46
 
    returnCode(assume_default_colors(-1, -1));
 
57
    return NCURSES_SP_NAME(use_default_colors) (CURRENT_SCREEN);
47
58
}
 
59
#endif
48
60
 
49
61
/*
50
62
 * Modify the behavior of color-pair 0 so that the library assumes that it
51
63
 * is something specific, possibly not white on black.
52
64
 */
53
65
NCURSES_EXPORT(int)
 
66
NCURSES_SP_NAME(assume_default_colors) (NCURSES_SP_DCLx int fg, int bg)
 
67
{
 
68
    int code = ERR;
 
69
 
 
70
    T((T_CALLED("assume_default_colors(%p,%d,%d)"), SP_PARM, fg, bg));
 
71
#ifdef USE_TERM_DRIVER
 
72
    if (SP_PARM != 0)
 
73
        code = CallDriver_2(SP_PARM, defaultcolors, fg, bg);
 
74
#else
 
75
    if ((orig_pair || orig_colors) && !initialize_pair) {
 
76
 
 
77
        SP_PARM->_default_color = isDefaultColor(fg) || isDefaultColor(bg);
 
78
        SP_PARM->_has_sgr_39_49 = (tigetflag("AX") == TRUE);
 
79
        SP_PARM->_default_fg = isDefaultColor(fg) ? COLOR_DEFAULT : (fg & C_MASK);
 
80
        SP_PARM->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : (bg & C_MASK);
 
81
        if (SP_PARM->_color_pairs != 0) {
 
82
            bool save = SP_PARM->_default_color;
 
83
            SP_PARM->_default_color = TRUE;
 
84
            init_pair(0, (short) fg, (short) bg);
 
85
            SP_PARM->_default_color = save;
 
86
        }
 
87
        code = OK;
 
88
    }
 
89
#endif
 
90
    returnCode(code);
 
91
}
 
92
 
 
93
#if NCURSES_SP_FUNCS
 
94
NCURSES_EXPORT(int)
54
95
assume_default_colors(int fg, int bg)
55
96
{
56
 
    T((T_CALLED("assume_default_colors(%d,%d)"), fg, bg));
57
 
 
58
 
    if (!orig_pair && !orig_colors)
59
 
        returnCode(ERR);
60
 
 
61
 
    if (initialize_pair)        /* don't know how to handle this */
62
 
        returnCode(ERR);
63
 
 
64
 
    SP->_default_color = isDefaultColor(fg) || isDefaultColor(bg);
65
 
    SP->_has_sgr_39_49 = (tigetflag("AX") == TRUE);
66
 
    SP->_default_fg = isDefaultColor(fg) ? COLOR_DEFAULT : (fg & C_MASK);
67
 
    SP->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : (bg & C_MASK);
68
 
    if (SP->_color_pairs != 0) {
69
 
        bool save = SP->_default_color;
70
 
        SP->_default_color = TRUE;
71
 
        init_pair(0, (short) fg, (short) bg);
72
 
        SP->_default_color = save;
73
 
    }
74
 
    returnCode(OK);
 
97
    return NCURSES_SP_NAME(assume_default_colors) (CURRENT_SCREEN, fg, bg);
75
98
}
 
99
#endif