| /* Public Domain Curses */ |
| |
| #include <curspriv.h> |
| |
| RCSID("$Id: delch.c,v 1.33 2008/07/13 16:08:18 wmcbrine Exp $") |
| |
| /*man-start************************************************************** |
| |
| Name: delch |
| |
| Synopsis: |
| int delch(void); |
| int wdelch(WINDOW *win); |
| int mvdelch(int y, int x); |
| int mvwdelch(WINDOW *win, int y, int x); |
| |
| Description: |
| The character under the cursor in the window is deleted. All |
| characters to the right on the same line are moved to the left |
| one position and the last character on the line is filled with |
| a blank. The cursor position does not change (after moving to |
| y, x if coordinates are specified). |
| |
| Return Value: |
| All functions return OK on success and ERR on error. |
| |
| Portability X/Open BSD SYS V |
| delch Y Y Y |
| wdelch Y Y Y |
| mvdelch Y Y Y |
| mvwdelch Y Y Y |
| |
| **man-end****************************************************************/ |
| |
| #include <string.h> |
| |
| int wdelch(WINDOW *win) |
| { |
| int y, x, maxx; |
| chtype *temp1; |
| |
| PDC_LOG(("wdelch() - called\n")); |
| |
| if (!win) |
| return ERR; |
| |
| y = win->_cury; |
| x = win->_curx; |
| maxx = win->_maxx - 1; |
| temp1 = &win->_y[y][x]; |
| |
| memmove(temp1, temp1 + 1, (maxx - x) * sizeof(chtype)); |
| |
| /* wrs (4/10/93) account for window background */ |
| |
| win->_y[y][maxx] = win->_bkgd; |
| |
| win->_lastch[y] = maxx; |
| |
| if ((win->_firstch[y] == _NO_CHANGE) || (win->_firstch[y] > x)) |
| win->_firstch[y] = x; |
| |
| PDC_sync(win); |
| |
| return OK; |
| } |
| |
| int delch(void) |
| { |
| PDC_LOG(("delch() - called\n")); |
| |
| return wdelch(stdscr); |
| } |
| |
| int mvdelch(int y, int x) |
| { |
| PDC_LOG(("mvdelch() - called\n")); |
| |
| if (move(y, x) == ERR) |
| return ERR; |
| |
| return wdelch(stdscr); |
| } |
| |
| int mvwdelch(WINDOW *win, int y, int x) |
| { |
| PDC_LOG(("mvwdelch() - called\n")); |
| |
| if (wmove(win, y, x) == ERR) |
| return ERR; |
| |
| return wdelch(win); |
| } |