summaryrefslogtreecommitdiff
path: root/console/display.c
AgeCommit message (Collapse)Author
2002-06-182002-06-18 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* console.h: Update all CONS_KEY_* macros to match other terminfo definitions (like "linux", "screen", "gnome"). Add CONS_CHAR_* macros for terminal graphic characters. * display.c (struct attr): New member ALTCHAR to flag usage of alternate character set. (display_notice_filechange): Make static. (handle_escape_bracket_m): Set ALTCHAR to 0 when resetting. Support new modes 10 and 11 to disable and enable ALTCHAR. (limit_cursor): New function, moved to global scope from ... (handle_escape_bracket): ... here. (linefeed): New function, moved to global scope from ... (display_output_one): ... here. (horizontal_tab): New function. (handle_escape_bracket): Add alias \E[' to \E[G for VT100 compatibility. Add capability \E[a (horizontal cursor position relative) for ECMA-48 compatibility. Add capabilities \E[I (horizontal tab) and \E[Z (backward tabulation) for ECMA-48 compatibility. Move capabilities \E[s and \E[u to ... (display_output_one): ... here as \E7 and \E8 for VT100 compatibility. (altchar_to_ucs4): New function. (display_output_one): Use altchar_to_ucs4 when in altchar mode. Add \EM (reset) capability.
2002-06-172002-06-17 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* console.c (new_node): Adjust size of display node. * console.h: Add macros for color names. Add macros for intensity names. Add new types conchar_t and conchar_attr_t, which represent a console matrix cell and the attribute of one such cell, resp. Add macros for keycodes. (struct cons_display): Change type of _matrix member to conchar_t. * display.c (struct attr): Rewrite, usiong cons_attr_t to hold the attributes. (handle_escape_bracket_m): Use new members of ATTR. (display_flush_filechange): Send notification for changed matrix before the notification for new cur_line. Fix types in length calculation. (conchar_memset): New function. (user_create): Accept CHR and ATTR arguments. Fix calculation of NPAGES. Use conchar_memset instead of wmemset. (screen_fill): Fix type of ATTR argument. Use conchar_memset instead of wmemset. (screen_shift_left): Fix type of ATTR argument. Set attribute of empty cells. Fix length calculation. (screen_shift_right): Likewise. (handle_escape_bracket): Set default parameter for HUP. Be more ECMA-48 conform. (display_output_one): Fix arguments in screen_fill invocation. Set attribute for character output. Add <NEL> from ECMA-48. (display_create): Use 50 lines for now. Set default colors, and add new arguments to user_create invocation. CVSi: ----------------------------------------------------------------------
2002-06-152002-06-15 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* display.c (struct changes): Change type of WHICH from int to unsigned int. (display_flush_filechanges): Likewise for argument TYPE. Fix a zillion bugs. (display_record_filechange): Fix half a zillion bugs. (screen_shift_left): Fix order of arguments. Just flag a normal write change for the whole region, instead trying to be clever. (screen_shift_right): Likewise.
2002-06-132002-06-14 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* display.c (struct changes): New structure to temporarily hold changes to the display. (struct display): New member CHANGES. (display_flush_filechange): New function. (display_record_filechange): Likewise. (screen_fill): Use display_record_filechange instead display_notice_filechange. (display_output_one): Likewise. (screen_shift_left): Flush pending filechanges before scrolling. (screen_shift_right): Likewise. (display_output_one): Don't notice changes here ... (display_output_some): ... but here. * display.c (struct user_pager_info): Add members MEMOBJ_NPAGES and MEMOBJ_PAGES to hold the allocated and returned pages. (struct display): Remove member MEMOBJ_SIZE. (pager_clear_user_data): Deallocate returned pages for this pager object. (pager_read_page): Add an assertion to check that we don't create new pages for already allocated and returned pages. (pager_write_page): Implement by just holding to the page and storing its address in the pager object for later deallocation. (pager_report_extent): Implement using new member MEMOBJ_NPAGES rather than MEMOBJ_SIZE. (user_create): Allocate extra storage for the returned pages in UPI.
2002-06-132002-06-13 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* Makefile (DIST_FILES): New target. (MIGSTUBS): Likewise. (OBJS): Add $(MIGSTUBS). * ourfs_notify.defs: New file. * console.c: Diddle order of typedefs. (netfs_attempt_read): Clip AMT to bytes left to read before calling display_read. (netfs_S_file_notice_changes): New function. * console.h: Include <stdint.h>, not <sys/types.h>. Change all types from u_int32_t to uint32_t. * display.c: Include <stddef.h> and "outfs_notify_U.h". Change all u_int_32 types to uint32_t. (struct modreq): New structure. (struct display): New member filemod_reqs. (free_modreqs): New function. (display_notice_changes): Likewise. (display_notice_filechange): Likewise. (display_destroy): Free filemod_reqs member of DISPLAY. (MATRIX_POS): Macro removed. (screen_fill): Rewritten. (screen_shift_left): New function. (screen_shift_right): Likewise. (screen_scroll_up): Function removed. (screen_scroll_down): Likewise. (screen_scroll_left): Likewise. (screen_scroll_right): Likewise. (handle_esc_bracket): Use new screen_* functions. (display_output_one): Store old cursor and screen attributes, and if they have been changed, send file change notifications. * display.h: New prototype for display_notice_changes.
2002-06-122002-06-12 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* console.c: Include <argz.h>. Do not include "console.h", but inline it. New macro DEFAULT_ENCODING. (struct cons): De-const-ify member ENCODING. (mycons, cons): Remove global variables. (vcons_lookup): Use default encoding if CONS->encoding is not set. (new_node): Access CONS through VCONS. Adjust size of display node. (netfs_attempt_read): Truncate length to read before reading. (netfs_S_io_map): New function. (options): New global variable. (parse_opt): New function. (netfs_append_args): New function. (main): New variable CONS to hold console structure. Rediddle initialization to allocate memory for it, parse arguments, and create the root node in correct order. Also call display_init. * console.h: Rewritten with new meaning. It now describes the public interface of the console. * display.c: Include <assert.h>, <error.h>, <hurd.h>, <hurd/pager.h> and "console.h". (struct screen): Removed. (struct cursor): Remove members X, Y and status. (struct user_pager_info): New struct. (struct display): Remove member SCREEN, add new members USER, UPI, MEMOBJ and MEMOBJ_SIZE. (pager_bucket): New global variable. (display_get_filemap): New function. (pager_clear_user_data): Likewise. (pager_read_page): Likewise. (pager_write_page): Likewise. (pager_unlock_page): Likewise. (pager_report_extent): Likewise. (pager_dropweak): Likewise. (service_paging_requests): Likewise. (screen_init): Renamed to ... (user_create): ... this new function and changed to allocate memory object and map it for USER data in display structure. (screen_deinit): Renamed to ... (user_destroy): ... this new function and rewrote it. (MATRIX_POS): New macro. (screen_fill): Take DISPLAY argument instead SCREEN. Use MATRIX_POS. (screen_scroll_up): Likewise. (screen_scroll_down): Likewise. (screen_scroll_left): Likewise. (screen_scroll_right): Likewise. (handle_esc_bracket_hl): Take DISPLAY argument instead CURSOR. (handle_esc_bracket): Access screen and cursor fields correctly. (display_output_one): Likewise. (display_getsize): Likewise. (display_init): New function. (display_create): New variables width, height, lines. Call user_create, not screen_init. Call user_destroy, not screen_deinit. (display_destroy): Call user_destroy, not screen_deinit. (display_read): Reimplement using memory mapping. * display.h: New prototypes for display_init and display_get_filemap.
2002-06-082002-06-09 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* display.c (struct cursor): Change type of all members from int to u_int32_t. (screen_init): Initialize SCREEN->lines with 25 instead 200 for now. (screen_fill): Bring SCREEN->current_line into the calculation of MATRIXP. (screen_scroll_up): Likewise. (screen_scroll_down): Likewise. (screen_scroll_left): Likewise. (screen_scroll_right): Likewise. (display_output_one): Beautify code a bit. (display_read): Add metadata to beginning of file. * console.c (new_node): Increase size of display node to include metadata.
2002-06-052002-06-05 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* input.h: New file. * input.c: Likewise. * console.h: Likewise. * console.c: Likewise. * display.h: New development version. * display.c: Likewise. * Makefile (SRCS): Replace with files for new console server. (LCLHDRS): Likewise. (HURDLIBS): Likewise. (OBJS): Likewise.
2002-06-042002-06-04 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* display.h: New file. * display.c: Likewise.