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

« back to all changes in this revision

Viewing changes to ncurses/base/lib_restart.c

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Baumann
  • Date: 2008-11-30 03:43:00 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20081130034300-lw6qrujyjmv6e32x
Tags: 5.7+20081122-2
Adding patch from Samuel Thibault to ensure that aalib checks the
value returned by Gpm_GetEvent() and only proceeds if value == 1
(Closes: #506717).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/****************************************************************************
2
 
 * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc.              *
 
2
 * Copyright (c) 1998-2007,2008 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            *
30
30
 *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
31
31
 *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
32
32
 *     and: Thomas E. Dickey                        1996-on                 *
33
 
 *     and: Juergen Pfeifer                         2008                    *
34
33
 ****************************************************************************/
35
34
 
36
35
/*
45
44
#define _POSIX_SOURCE
46
45
#endif
47
46
 
48
 
MODULE_ID("$Id: lib_restart.c,v 1.11 2009/05/02 20:47:42 tom Exp $")
 
47
#include <term.h>               /* lines, columns, cur_term */
 
48
 
 
49
MODULE_ID("$Id: lib_restart.c,v 1.10 2008/06/21 17:31:22 tom Exp $")
49
50
 
50
51
NCURSES_EXPORT(int)
51
 
NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx
52
 
                              NCURSES_CONST char *termp,
53
 
                              int filenum,
54
 
                              int *errret)
 
52
restartterm(NCURSES_CONST char *termp, int filenum, int *errret)
55
53
{
56
54
    int result;
57
55
 
58
 
    T((T_CALLED("restartterm(%p,%s,%d,%p)"), SP_PARM, termp, filenum, errret));
 
56
    T((T_CALLED("restartterm(%s,%d,%p)"), termp, filenum, errret));
59
57
 
60
58
    if (setupterm(termp, filenum, errret) != OK) {
61
59
        result = ERR;
62
 
    } else if (SP_PARM != 0) {
63
 
        int saveecho = SP_PARM->_echo;
64
 
        int savecbreak = SP_PARM->_cbreak;
65
 
        int saveraw = SP_PARM->_raw;
66
 
        int savenl = SP_PARM->_nl;
 
60
    } else if (SP != 0) {
 
61
        int saveecho = SP->_echo;
 
62
        int savecbreak = SP->_cbreak;
 
63
        int saveraw = SP->_raw;
 
64
        int savenl = SP->_nl;
67
65
 
68
 
        if (saveecho) {
69
 
            NCURSES_SP_NAME(echo) (NCURSES_SP_ARG);
70
 
        } else {
71
 
            NCURSES_SP_NAME(noecho) (NCURSES_SP_ARG);
72
 
        }
 
66
        if (saveecho)
 
67
            echo();
 
68
        else
 
69
            noecho();
73
70
 
74
71
        if (savecbreak) {
75
 
            NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG);
76
 
            NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG);
 
72
            cbreak();
 
73
            noraw();
77
74
        } else if (saveraw) {
78
 
            NCURSES_SP_NAME(nocbreak) (NCURSES_SP_ARG);
79
 
            NCURSES_SP_NAME(raw) (NCURSES_SP_ARG);
80
 
        } else {
81
 
            NCURSES_SP_NAME(nocbreak) (NCURSES_SP_ARG);
82
 
            NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG);
83
 
        }
84
 
        if (savenl) {
85
 
            NCURSES_SP_NAME(nl) (NCURSES_SP_ARG);
86
 
        } else {
87
 
            NCURSES_SP_NAME(nonl) (NCURSES_SP_ARG);
88
 
        }
 
75
            nocbreak();
 
76
            raw();
 
77
        } else {
 
78
            nocbreak();
 
79
            noraw();
 
80
        }
 
81
        if (savenl)
 
82
            nl();
 
83
        else
 
84
            nonl();
89
85
 
90
 
        NCURSES_SP_NAME(reset_prog_mode) (NCURSES_SP_ARG);
 
86
        reset_prog_mode();
91
87
 
92
88
#if USE_SIZECHANGE
93
 
        _nc_update_screensize(SP_PARM);
 
89
        _nc_update_screensize(SP);
94
90
#endif
95
91
 
96
92
        result = OK;
99
95
    }
100
96
    returnCode(result);
101
97
}
102
 
 
103
 
#if NCURSES_SP_FUNCS
104
 
NCURSES_EXPORT(int)
105
 
restartterm(NCURSES_CONST char *termp, int filenum, int *errret)
106
 
{
107
 
    return NCURSES_SP_NAME(restartterm) (CURRENT_SCREEN, termp, filenum, errret);
108
 
}
109
 
#endif