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

« back to all changes in this revision

Viewing changes to ncurses/base/lib_redrawln.c

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Baumann
  • Date: 2008-11-05 21:34:00 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20081105213400-7d9r3jj2ngz18k24
Tags: 5.7-1
* Merging upstream version 5.7.
* Updating soname and sodepver to 5.7 in rules.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/****************************************************************************
2
 
 * Copyright (c) 1998-2007,2009 Free Software Foundation, Inc.              *
 
2
 * Copyright (c) 1998-2006,2007 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            *
39
39
 
40
40
#include <curses.priv.h>
41
41
 
42
 
MODULE_ID("$Id: lib_redrawln.c,v 1.13 2009/04/18 18:46:00 tom Exp $")
 
42
MODULE_ID("$Id: lib_redrawln.c,v 1.12 2007/10/13 20:08:56 tom Exp $")
43
43
 
44
44
NCURSES_EXPORT(int)
45
45
wredrawln(WINDOW *win, int beg, int num)
47
47
    int i;
48
48
    int end;
49
49
    size_t len;
50
 
    SCREEN *sp;
51
50
 
52
51
    T((T_CALLED("wredrawln(%p,%d,%d)"), win, beg, num));
53
52
 
54
53
    if (win == 0)
55
54
        returnCode(ERR);
56
55
 
57
 
    sp = _nc_screen_of(win);
58
 
 
59
56
    if (beg < 0)
60
57
        beg = 0;
61
58
 
62
59
    if (touchline(win, beg, num) == ERR)
63
60
        returnCode(ERR);
64
61
 
65
 
    if (touchline(sp->_curscr, beg + win->_begy, num) == ERR)
 
62
    if (touchline(curscr, beg + win->_begy, num) == ERR)
66
63
        returnCode(ERR);
67
64
 
68
65
    end = beg + num;
69
 
    if (end > sp->_curscr->_maxy + 1)
70
 
        end = sp->_curscr->_maxy + 1;
 
66
    if (end > curscr->_maxy + 1)
 
67
        end = curscr->_maxy + 1;
71
68
    if (end > win->_maxy + 1)
72
69
        end = win->_maxy + 1;
73
70
 
74
71
    len = (win->_maxx + 1);
75
 
    if (len > (size_t) (sp->_curscr->_maxx + 1))
76
 
        len = (size_t) (sp->_curscr->_maxx + 1);
77
 
    len *= sizeof(sp->_curscr->_line[0].text[0]);
 
72
    if (len > (size_t) (curscr->_maxx + 1))
 
73
        len = (size_t) (curscr->_maxx + 1);
 
74
    len *= sizeof(curscr->_line[0].text[0]);
78
75
 
79
76
    for (i = beg; i < end; i++) {
80
77
        int crow = i + win->_begy;
81
78
 
82
 
        memset(sp->_curscr->_line[crow].text + win->_begx, 0, len);
83
 
        NCURSES_SP_NAME(_nc_make_oldhash) (NCURSES_SP_ARGx crow);
 
79
        memset(curscr->_line[crow].text + win->_begx, 0, len);
 
80
        _nc_make_oldhash(crow);
84
81
    }
85
82
 
86
83
    returnCode(OK);