summaryrefslogtreecommitdiff
path: root/console/display.c
AgeCommit message (Collapse)Author
2013-10-22Make CUD more usualSamuel Thibault
Whether CUD scrolls the screen or not is implementation-dependant. Applications are not supposed to assume one way or the other, but they sometimes do, and most implementations do scroll, so let's stick to common practice. * console/display.c (handle_esc_bracket): On CUD/VPR, scroll the screen instead of capping the cursor position.
2012-11-27Switch from cthreads to pthreadsRichard Braun
Makefiles, headers, types, macros and function calls are renamed where appropriate. Most of this work was done by Barry deFreese and Thomas DiModica. * auth/Makefile: Switch from cthreads to pthreads. * auth/auth.c: Likewise. * boot/Makefile: Likewise. * boot/boot.c: Likewise. * boot/ux.c: Likewise. * console-client/Makefile: Likewise. * console-client/console.c: Likewise. * console-client/driver.c: Likewise. * console-client/driver.h: Likewise. * console-client/generic-speaker.c: Likewise. * console-client/kbd-repeat.c: Likewise. * console-client/ncursesw.c: Likewise. * console-client/pc-kbd.c: Likewise. * console-client/pc-mouse.c: Likewise. * console-client/timer.c: Likewise. * console-client/trans.c: Likewise. * console-client/vga.c: Likewise. * console/Makefile: Likewise. * console/console.c: Likewise. * console/display.c: Likewise. * console/input.c: Likewise. * console/pager.c: Likewise. * defpager/backing.c: Likewise. * exec/Makefile: Likewise. * exec/exec.c: Likewise. * exec/hashexec.c: Likewise. * exec/priv.h: Likewise. * ext2fs/Makefile: Likewise. * ext2fs/balloc.c: Likewise. * ext2fs/dir.c: Likewise. * ext2fs/ext2fs.c: Likewise. * ext2fs/ext2fs.h: Likewise. * ext2fs/ialloc.c: Likewise. * ext2fs/inode.c: Likewise. * ext2fs/msg.c: Likewise. * ext2fs/pager.c: Likewise. * ext2fs/pokel.c: Likewise. * ext2fs/storeinfo.c: Likewise. * ext2fs/truncate.c: Likewise. * fatfs/Makefile: Likewise. * fatfs/dir.c: Likewise. * fatfs/fat.c: Likewise. * fatfs/fatfs.h: Likewise. * fatfs/inode.c: Likewise. * fatfs/main.c: Likewise. * fatfs/pager.c: Likewise. * fatfs/virt-inode.c: Likewise. * ftpfs/Makefile: Likewise. * ftpfs/ccache.c: Likewise. * ftpfs/ccache.h: Likewise. * ftpfs/conn.c: Likewise. * ftpfs/dir.c: Likewise. * ftpfs/fs.c: Likewise. * ftpfs/ftpfs.c: Likewise. * ftpfs/ftpfs.h: Likewise. * ftpfs/ncache.c: Likewise. * ftpfs/netfs.c: Likewise. * ftpfs/node.c: Likewise. * hostmux/Makefile: Likewise. * hostmux/hostmux.h: Likewise. * hostmux/mux.c: Likewise. * hostmux/node.c: Likewise. * hostmux/stubs.c: Likewise. * hurd/shared.h: Likewise. * isofs/Makefile: Likewise. * isofs/inode.c: Likewise. * isofs/lookup.c: Likewise. * isofs/main.c: Likewise. * isofs/pager.c: Likewise. * libcons/Makefile: Likewise. * libcons/cons-switch.c: Likewise. * libcons/cons.h: Likewise. * libcons/dir-changed.c: Likewise. * libcons/file-changed.c: Likewise. * libcons/init-init.c: Likewise. * libcons/vcons-close.c: Likewise. * libcons/vcons-input.c: Likewise. * libcons/vcons-move-mouse.c: Likewise. * libcons/vcons-open.c: Likewise. * libcons/vcons-scrollback.c: Likewise. * libdiskfs/Makefile: Likewise. * libdiskfs/boot-start.c: Likewise. * libdiskfs/dead-name.c: Likewise. * libdiskfs/dir-chg.c: Likewise. * libdiskfs/dir-link.c: Likewise. * libdiskfs/dir-lookup.c: Likewise. * libdiskfs/dir-mkdir.c: Likewise. * libdiskfs/dir-mkfile.c: Likewise. * libdiskfs/dir-readdir.c: Likewise. * libdiskfs/dir-rename.c: Likewise. * libdiskfs/dir-renamed.c: Likewise. * libdiskfs/dir-rmdir.c: Likewise. * libdiskfs/dir-unlink.c: Likewise. * libdiskfs/disk-pager.c: Likewise. * libdiskfs/diskfs-pager.h: Likewise. * libdiskfs/diskfs.h: Likewise. * libdiskfs/file-access.c: Likewise. * libdiskfs/file-chg.c: Likewise. * libdiskfs/file-exec.c: Likewise. * libdiskfs/file-get-fs-opts.c: Likewise. * libdiskfs/file-get-trans.c: Likewise. * libdiskfs/file-get-transcntl.c: Likewise. * libdiskfs/file-getcontrol.c: Likewise. * libdiskfs/file-getfh.c: Likewise. * libdiskfs/file-lock-stat.c: Likewise. * libdiskfs/file-lock.c: Likewise. * libdiskfs/file-reparent.c: Likewise. * libdiskfs/file-set-trans.c: Likewise. * libdiskfs/file-sync.c: Likewise. * libdiskfs/file-syncfs.c: Likewise. * libdiskfs/fsys-getroot.c: Likewise. * libdiskfs/fsys-options.c: Likewise. * libdiskfs/fsys-syncfs.c: Likewise. * libdiskfs/ifsock.c: Likewise. * libdiskfs/init-first.c: Likewise. * libdiskfs/init-init.c: Likewise. * libdiskfs/init-startup.c: Likewise. * libdiskfs/io-duplicate.c: Likewise. * libdiskfs/io-get-conch.c: Likewise. * libdiskfs/io-identity.c: Likewise. * libdiskfs/io-map-cntl.c: Likewise. * libdiskfs/io-map.c: Likewise. * libdiskfs/io-modes-get.c: Likewise. * libdiskfs/io-modes-off.c: Likewise. * libdiskfs/io-modes-on.c: Likewise. * libdiskfs/io-modes-set.c: Likewise. * libdiskfs/io-owner-get.c: Likewise. * libdiskfs/io-owner-mod.c: Likewise. * libdiskfs/io-prenotify.c: Likewise. * libdiskfs/io-read.c: Likewise. * libdiskfs/io-readable.c: Likewise. * libdiskfs/io-reauthenticate.c: Likewise. * libdiskfs/io-rel-conch.c: Likewise. * libdiskfs/io-restrict-auth.c: Likewise. * libdiskfs/io-revoke.c: Likewise. * libdiskfs/io-seek.c: Likewise. * libdiskfs/io-sigio.c: Likewise. * libdiskfs/io-stat.c: Likewise. * libdiskfs/io-write.c: Likewise. * libdiskfs/lookup.c: Likewise. * libdiskfs/name-cache.c: Likewise. * libdiskfs/node-drop.c: Likewise. * libdiskfs/node-make.c: Likewise. * libdiskfs/node-nput.c: Likewise. * libdiskfs/node-nputl.c: Likewise. * libdiskfs/node-nref.c: Likewise. * libdiskfs/node-nrefl.c: Likewise. * libdiskfs/node-nrele.c: Likewise. * libdiskfs/node-nrelel.c: Likewise. * libdiskfs/peropen-rele.c: Likewise. * libdiskfs/priv.h: Likewise. * libdiskfs/shutdown.c: Likewise. * libdiskfs/sync-interval.c: Likewise. * libfshelp/Makefile: Likewise. * libfshelp/fetch-root.c: Likewise. * libfshelp/fshelp.h: Likewise. * libfshelp/get-identity.c: Likewise. * libfshelp/lock-acquire.c: Likewise. * libfshelp/lock-init.c: Likewise. * libfshelp/locks.h: Likewise. * libfshelp/set-active.c: Likewise. * libfshelp/trans.h: Likewise. * libfshelp/transbox-init.c: Likewise. * libiohelp/Makefile: Likewise. * libiohelp/get_conch.c: Likewise. * libiohelp/handle_io_release_conch.c: Likewise. * libiohelp/initialize_conch.c: Likewise. * libiohelp/iohelp.h: Likewise. * libiohelp/verify_user_conch.c: Likewise. * libnetfs/Makefile: Likewise. * libnetfs/dir-lookup.c: Likewise. * libnetfs/dir-mkdir.c: Likewise. * libnetfs/dir-mkfile.c: Likewise. * libnetfs/dir-readdir.c: Likewise. * libnetfs/dir-rmdir.c: Likewise. * libnetfs/dir-unlink.c: Likewise. * libnetfs/drop-node.c: Likewise. * libnetfs/file-chauthor.c: Likewise. * libnetfs/file-check-access.c: Likewise. * libnetfs/file-chflags.c: Likewise. * libnetfs/file-chmod.c: Likewise. * libnetfs/file-chown.c: Likewise. * libnetfs/file-exec.c: Likewise. * libnetfs/file-get-storage-info.c: Likewise. * libnetfs/file-get-translator.c: Likewise. * libnetfs/file-lock-stat.c: Likewise. * libnetfs/file-lock.c: Likewise. * libnetfs/file-reparent.c: Likewise. * libnetfs/file-set-size.c: Likewise. * libnetfs/file-set-translator.c: Likewise. * libnetfs/file-statfs.c: Likewise. * libnetfs/file-sync.c: Likewise. * libnetfs/file-syncfs.c: Likewise. * libnetfs/file-utimes.c: Likewise. * libnetfs/fsys-getroot.c: Likewise. * libnetfs/fsys-set-options.c: Likewise. * libnetfs/init-init.c: Likewise. * libnetfs/io-clear-some-openmodes.c: Likewise. * libnetfs/io-duplicate.c: Likewise. * libnetfs/io-get-openmodes.c: Likewise. * libnetfs/io-get-owner.c: Likewise. * libnetfs/io-identity.c: Likewise. * libnetfs/io-mod-owner.c: Likewise. * libnetfs/io-read.c: Likewise. * libnetfs/io-readable.c: Likewise. * libnetfs/io-reauthenticate.c: Likewise. * libnetfs/io-restrict-auth.c: Likewise. * libnetfs/io-revoke.c: Likewise. * libnetfs/io-seek.c: Likewise. * libnetfs/io-set-all-openmodes.c: Likewise. * libnetfs/io-set-some-openmodes.c: Likewise. * libnetfs/io-stat.c: Likewise. * libnetfs/io-write.c: Likewise. * libnetfs/make-node.c: Likewise. * libnetfs/netfs.h: Likewise. * libnetfs/nput.c: Likewise. * libnetfs/nref.c: Likewise. * libnetfs/nrele.c: Likewise. * libnetfs/release-peropen.c: Likewise. * libnetfs/shutdown.c: Likewise. * libpager/Makefile: Likewise. * libpager/chg-compl.c: Likewise. * libpager/clean.c: Likewise. * libpager/data-request.c: Likewise. * libpager/data-return.c: Likewise. * libpager/data-unlock.c: Likewise. * libpager/inhibit-term.c: Likewise. * libpager/lock-completed.c: Likewise. * libpager/lock-object.c: Likewise. * libpager/mark-error.c: Likewise. * libpager/no-senders.c: Likewise. * libpager/object-init.c: Likewise. * libpager/object-terminate.c: Likewise. * libpager/offer-page.c: Likewise. * libpager/pager-attr.c: Likewise. * libpager/pager-create.c: Likewise. * libpager/pager-shutdown.c: Likewise. * libpager/priv.h: Likewise. * libpager/seqnos.c: Likewise. * libpipe/Makefile: Likewise. * libpipe/pipe.c: Likewise. * libpipe/pipe.h: Likewise. * libports/Makefile: Likewise. * libports/begin-rpc.c: Likewise. * libports/bucket-iterate.c: Likewise. * libports/claim-right.c: Likewise. * libports/class-iterate.c: Likewise. * libports/complete-deallocate.c: Likewise. * libports/count-bucket.c: Likewise. * libports/count-class.c: Likewise. * libports/create-bucket.c: Likewise. * libports/create-internal.c: Likewise. * libports/destroy-right.c: Likewise. * libports/enable-bucket.c: Likewise. * libports/enable-class.c: Likewise. * libports/end-rpc.c: Likewise. * libports/get-right.c: Likewise. * libports/import-port.c: Likewise. * libports/inhibit-all-rpcs.c: Likewise. * libports/inhibit-bucket-rpcs.c: Likewise. * libports/inhibit-class-rpcs.c: Likewise. * libports/inhibit-port-rpcs.c: Likewise. * libports/init.c: Likewise. * libports/interrupt-notified-rpcs.c: Likewise. * libports/interrupt-on-notify.c: Likewise. * libports/interrupt-operation.c: Likewise. * libports/interrupt-rpcs.c: Likewise. * libports/interrupted.c: Likewise. * libports/lookup-port.c: Likewise. * libports/manage-multithread.c: Likewise. * libports/no-senders.c: Likewise. * libports/port-deref-weak.c: Likewise. * libports/port-deref.c: Likewise. * libports/port-ref-weak.c: Likewise. * libports/port-ref.c: Likewise. * libports/ports.h: Likewise. * libports/reallocate-from-external.c: Likewise. * libports/reallocate-port.c: Likewise. * libports/resume-all-rpcs.c: Likewise. * libports/resume-bucket-rpcs.c: Likewise. * libports/resume-class-rpcs.c: Likewise. * libports/resume-port-rpcs.c: Likewise. * libports/stubs.c: Likewise. * libports/transfer-right.c: Likewise. * libstore/Makefile: Likewise. * libstore/gunzip.c: Likewise. * libstore/part.c: Likewise. * libstore/unzipstore.c: Likewise. * libthreads/Makefile: Likewise. * libtreefs/dir-lookup.c: Likewise. * libtreefs/fsys-getroot.c: Likewise. * libtreefs/fsys-hooks.c: Likewise. * libtreefs/fsys.c: Likewise. * libtreefs/trans-help.c: Likewise. * libtreefs/trans-start.c: Likewise. * libtreefs/treefs.h: Likewise. * libtrivfs/cntl-create.c: Likewise. * libtrivfs/dyn-classes.c: Likewise. * libtrivfs/io-reauthenticate.c: Likewise. * libtrivfs/io-restrict-auth.c: Likewise. * libtrivfs/protid-clean.c: Likewise. * libtrivfs/protid-dup.c: Likewise. * libtrivfs/trivfs.h: Likewise. * mach-defpager/Makefile: Likewise. * mach-defpager/default_pager.c: Likewise. * mach-defpager/kalloc.c: Likewise. * mach-defpager/main.c: Likewise. * nfs/Makefile: Likewise. * nfs/cache.c: Likewise. * nfs/main.c: Likewise. * nfs/mount.c: Likewise. * nfs/name-cache.c: Likewise. * nfs/nfs.h: Likewise. * nfs/ops.c: Likewise. * nfs/rpc.c: Likewise. * nfsd/Makefile: Likewise. * nfsd/cache.c: Likewise. * nfsd/loop.c: Likewise. * nfsd/main.c: Likewise. * nfsd/nfsd.h: Likewise. * pfinet/Makefile: Likewise. * pfinet/ethernet.c: Likewise. * pfinet/glue-include/asm/spinlock.h: Likewise. * pfinet/glue-include/linux/interrupt.h: Likewise. * pfinet/glue-include/linux/sched.h: Likewise. * pfinet/glue-include/linux/timer.h: Likewise. * pfinet/glue-include/linux/wait.h: Likewise. * pfinet/iioctl-ops.c: Likewise. * pfinet/io-ops.c: Likewise. * pfinet/kmem_cache.c: Likewise. * pfinet/main.c: Likewise. * pfinet/options.c: Likewise. * pfinet/pfinet-ops.c: Likewise. * pfinet/pfinet.h: Likewise. * pfinet/sched.c: Likewise. * pfinet/socket-ops.c: Likewise. * pfinet/socket.c: Likewise. * pfinet/timer-emul.c: Likewise. * pfinet/tunnel.c: Likewise. * pflocal/Makefile: Likewise. * pflocal/connq.c: Likewise. * pflocal/io.c: Likewise. * pflocal/sock.c: Likewise. * pflocal/sock.h: Likewise. * pflocal/socket.c: Likewise. * pflocal/sserver.c: Likewise. * proc/Makefile: Likewise. * proc/info.c: Likewise. * proc/main.c: Likewise. * proc/mgt.c: Likewise. * proc/msg.c: Likewise. * proc/proc.h: Likewise. * proc/stubs.c: Likewise. * proc/wait.c: Likewise. * storeio/Makefile: Likewise. * storeio/dev.c: Likewise. * storeio/dev.h: Likewise. * storeio/open.c: Likewise. * storeio/open.h: Likewise. * storeio/pager.c: Likewise. * storeio/storeio.c: Likewise. * term/Makefile: Likewise. * term/devio.c: Likewise. * term/hurdio.c: Likewise. * term/main.c: Likewise. * term/munge.c: Likewise. * term/ptyio.c: Likewise. * term/term.h: Likewise. * term/users.c: Likewise. * tmpfs/Makefile: Likewise. * tmpfs/dir.c: Likewise. * tmpfs/node.c: Likewise. * tmpfs/tmpfs.c: Likewise. * tmpfs/tmpfs.h: Likewise. * trans/Makefile: Likewise. * trans/fakeroot.c: Likewise. * trans/fifo.c: Likewise. * trans/hello-mt.c: Likewise. * trans/new-fifo.c: Likewise. * trans/streamio.c: Likewise. * ufs/Makefile: Likewise. * ufs/alloc.c: Likewise. * ufs/dir.c: Likewise. * ufs/hyper.c: Likewise. * ufs/inode.c: Likewise. * ufs/main.c: Likewise. * ufs/pager.c: Likewise. * ufs/pokeloc.c: Likewise. * ufs/sizes.c: Likewise. * ufs/ufs.h: Likewise. * usermux/Makefile: Likewise. * usermux/mux.c: Likewise. * usermux/node.c: Likewise. * usermux/usermux.h: Likewise. * utils/Makefile: Likewise. * utils/fakeauth.c: Likewise. * utils/rpctrace.c: Likewise.
2011-08-20fix common misspellingsJonathan Neuschäfer
* Fix spelling with codespell[1] and manually review it. [1] http://git.profusion.mobi/cgit.cgi/lucas/codespell/
2011-03-06Fix auto-margin supportSamuel Thibault
* console/display.c (display_output_one): Allow user->cursor.col to become equal to width, add linefeed on next character insertion in such case.
2011-03-06Use macro instead of hardcoded valueSamuel Thibault
* console/display.c (user_create): Use CONS_VERSION_MAJ_SHIFT macro instead of hardcoded value 16.
2010-08-01Fix copyrightsSamuel Thibault
2010-08-01Add wide character support to the Hurd consoleJeremie Koenig
* hurd/console.h (CONS_WCHAR_MASK, CONS_WCHAR_CONTINUED): New macros. * console/console.c: Include <locale.h> (main): Call setlocale. * console/display.c (display_output_one): Call wcwidth() to know the width of the character to be displayed. Iterate over this with to insert characters with the additional CONS_WCHAR_CONTINUED flag. Update screen_shift_right and display_record_filechange calls accordingly. * console-client/vga-dynafont.c (WCHAR_BOLD, WCHAR_ITALIC, WCHAR_MASK): Change macro values. (dynafont_new): Use glyph->bbox.{width,height} instead of df->font->bbox.{width,height}. (dynafont_change_font): Likewise. (dynafont_lookup_internal): Likewise. Mask out CONS_WCHAR_CONTINUED before calling bdf_find_glyph, but test it for the second position of a double-width glyph. (dynafont_activate): Enable 9-bit width only when font width is not dividable by 8.
2003-06-032003-04-29 Marco Gerards <metgerards@student.han.nl>Marcus Brinkmann
* display.c (display_create): Added arguments width, height and lines, variables with the same name were removed. * display.h (display_creat): Add missing arguments to prototype. * console.c (DEFAULT_WIDTH): New macro. (DEFAULT_HEIGHT): Likewise. (DEFAULT_LINES): Likewise. (STRX): Likewise. (STR): Likewise. (struct cons): New members lines, width and height. (vcons_lookup): Add missing arguments to display_create. (options): Add options width, height and lines. (parse_opt): Parse width, height and lines. (netfs_append_args): Append arguments width, height and lines. (netfs_append_args): Fix asprintf error checking. (main): Initialize cons with default width, height and lines.
2002-10-102002-10-10 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* hurd.ti (cub1): Change from \E[D to ^H. * display.c (handle_esc_bracket): Revert last change.
2002-10-102002-10-10 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* display.c (handle_esc_bracket): Implement <bw> for <cub1>.
2002-09-222002-09-22 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* pager.c, pager.h: New file. * Makefile (SRCS): Add pager.c. (LCLHDRS): Add pager.h. * display.c: Do not include <hurd/pager.h>, <sys/mman.h>, <sys/io.h>, <fcntl.h> and <sys/fcntl.h>. Include <hurd/ports.h> and "pager.h". (struct display): Replace member PAGER and MEMOBJ with USER_PAGER. (display_get_filemap): Implement with user_pager_get_filemap. (user_destroy): Implement with user_pager_destroy. (user_create): Implement partially with user_create. (display_init): Call user_pager_init. (struct user_pager_info, pager_bucket, pager_clear_user_data, pager_read_page, pager_write_page, pager_unlock_page, pager_report_extent, pager_dropweak, service_paging_requests): Move to ... * pager.c: ... here.
2002-09-222002-09-22 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* console.c: Include <mach.h>. (netfs_S_dir_notice_changes): New variable PREQ. Clean out the dead wood, eh, dead name notifications from the CONS->dirmod_req list. * display.c (struct user_pager_info): Drop members DISPLAY and P. (struct display): Remove member UPI and add member PAGER. (pager_report_extent): Remove local variable DISPLAY, use UPI directly. (user_create): New variable UPI to hold the user pager info. Modify the code to match new struct organization. (user_destroy): Unmap the user data. (display_notice_changes): Request dead-name notifications. (free_modreqs): Cancel dead-name notification request before deallocation send right. (display_notice_filechange): Likewise. (do_mach_notify_msg_accepted): Likewise. (display_destroy): Take DISPLAY->lock while operating. Reset the filemod_reqs and filemod_reqs_pending members of DISPLAY to NULL. (do_mach_notify_port_deleted): Add comment. (do_mach_notify_dead_name): Implement. (do_mach_notify_no_senders): Implement by delegating to libports. (do_mach_notify_send_once): Don't fail.
2002-09-18hurd/Marcus Brinkmann
2002-09-18 Marcus Brinkmann <marcus@gnu.org> * console.h (struct cons_display): Add a new flag CONS_FLAGS_TRACK_MOUSE. (CONS_MOUSE_BUTTON_MASK, CONS_MOUSE_BUTTON1, CONS_MOUSE_BUTTON2, CONS_MOUSE_BUTTON3, CONS_MOUSE_RELEASE, CONS_MOUSE_MOD_MASK, CONS_MOUSE_MOD_SHIFT, CONS_MOUSE_MOD_META, CONS_MOUSE_MOD_CTRL, CONS_MOUSE_OFFSET_BASE, CONS_MOUSE_EVENT_LENGTH, CONS_MOUSE_EVENT_PREFIX, CONS, MOUSE_EVENT): New macro. (CONS_KEY_B2): New macro. console/ 2002-09-18 Marcus Brinkmann <marcus@gnu.org> * hurd.ti: Enable <kb2> and <kmouse>, fix the comments. * display.c (handle_esc_bracket_question_hl): Handle escape bracket 1000 h/l for XTerm-like mouse tracking enable/disable.
2002-09-182002-09-18 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* display.c (handle_esc_bracket): Use scrolling region for <ind>, <indn>, <ri>, <rin>, <il1>, <il>, <dl1> and <dl>. Also fix off-by-one error in <ri>, <rin>.
2002-09-182002-09-18 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* hurd.ti: Change <gsbom> and <grbom> to escape bracket right-angle sequences. Add <csr>, <smir>, <rmir> and <mir>, disable <ich1>. * display.c (handle_esc_bracket_m): Map \E[21m to normal intensity (as a way to switch off bright intensity). (handle_esc_bracket): Fix calculation of fill area for <ech>. (struct scrolling_region): New type. (struct display): New members INSERT_MODE and CSR. (display_output_one): For <rs2>, also reset DISPLAY->insert_mode and DISPLAY->csr. (display_create): Initialize DISPLAY->csr.bottom. (display_output_one): If in insert mode, shift to the right before printing the character. (linefeed): Take scrolling region into account. (handle_esc_bracket): Switch the meaning of 'h' and 'l'. (handle_esc_bracket_question): Likewise. (handle_esc_bracket_question_hl): Switch the interpretation of FLAG. (handle_esc_bracket_hl): Likewise. Add support for insert mode <smir> and <rmir>. (struct parse): New state STATE_ESC_BRACKET_RIGHT_ANGLE. (display_output_one): Handle STATE_ESC_BRACKET_RIGHT_ANGLE. (display_output_one): Move the bold attribute handling from here (<PU1>, <PU2>) ... (handle_esc_bracket_right_angle_hl): ... to here. New function handling <gsbom> and <grbom>. (handle_esc_bracket_right_angle): New function. (handle_esc_bracket): Implement <csr>.
2002-09-172002-09-17 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* display.c (handle_esc_bracket_m): Really disable italics on <ritm>.
2002-09-16hurd/Marcus Brinkmann
2002-09-16 Marcus Brinkmann <marcus@gnu.org> * console.h (conchar_attr_t): Add bits for italic and bold text attributes. console/ 2002-09-16 Marcus Brinkmann <marcus@gnu.org> * hurd.ti: Add capabilities <sitm>, <ritm>, <gsbom>, <grbom>. * display.c (handle_esc_bracket_m): Add support for italic. (display_output_one): Add new capabilities PU1 and PU2 to toggle bold mode. Reset PARSE->state on most escape sequences. * console.c (parse_attributes): Rename old bold attribute to bright. Add support for italic and bold.
2002-09-10console/Marcus Brinkmann
2002-09-10 Marcus Brinkmann <marcus@gnu.org> * display.c (DISPLAY_CHANGE_FLAGS): New macro. (struct changes): New member FLAGS. (display_flush_filechange): Handle change of flags. (display_output_some): Initialize DISPLAY->changes.flags. (display_start_output): Clear CONS_FLAGS_SCROLL_LOCK in DISPLAY. (display_stop_output): Set CONS_FLAGS_SCROLL_LOCK in DISPLAY. hurd/ 2002-09-10 Marcus Brinkmann <marcus@gnu.org> * console.h (struct cons_display): New member FLAGS. (union cons_change_t): Likewise for WHAT->flags. libcons/ 2002-09-10 Marcus Brinkmann <marcus@gnu.org> * cons.h: New prototype for cons_vcons_set_scroll_lock. (struct vcons): Add member FLAGS to state. * file-changed.c (cons_S_file_changed): Handle change of flags. * vcons-refresh.c (cons_vcons_refresh): Copy FLAGS field. Call cons_vcons_set_scroll_lock. * cons-switch.c (cons_switch): Initialize VCONS_ENTRY even if DELTA is negative. utils/ 2002-09-09 Marcus Brinkmann <marcus@gnu.org> * console-ncurses.c (cons_vcons_set_scroll_lock): New function.
2002-09-102002-09-10 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* display.c (display_output_some): If iconv fails with EILSEQ, skip the next byte in the buffer and print a replacement character.
2002-08-292002-08-30 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* display.c (display_create): Likewise. Set DISPLAY->attr.attr_def instead the color versions. (struct attr): Remove fgcol_def, bgcol_def, and add attr_def. (handle_esc_bracket_m): Set all attributes to their defaults for case 0. Set default color using default attribute for case 49 and case 39. (display_output_one): Likewise. * console.c (options): Add --attribute option. (parse_opt): Parse --attribute option. Bail out with argp_error on error. (netfs_append_args): ... (struct cons): Replace foreground and background with new attribute member. (vcons_lookup): Pass CONS->attribute to display_create instead CONS->foreground and CONS->background. (main): Set default colors and attributes. (parse_attributes): New function.
2002-08-28hurd/Marcus Brinkmann
2002-08-28 Marcus Brinkmann <marcus@gnu.org> * console.h (struct cons_display): Fix comment on CUR_LINE. console/ 2002-08-28 Marcus Brinkmann <marcus@gnu.org> * display.c (screen_fill): Take CUR_LINES modulo LINES. (screen_shift_left): Likewise. (screen_shift_right): Likewise. (linefeed): Don't take CUR_LINES modulo LINES here. libcons/ 2002-08-28 Marcus Brinkmann <marcus@gnu.org> * file-changed.c (cons_S_file_changed): Take NEW_CUR_LINE modulo VCONS->state.screen.lines where appropriate. Adapt calculation of SCROLLING, and limit it to the screen size. Only scroll at all if there is something to scroll. Fix calculation of scrolled-in area. * vcons-refresh.c (cons_vcons_refresh): Take VCONS->state.screen.cur_line modulo VCONS->state.screen.lines.
2002-08-282002-08-28 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* display.c (display_output_one): Also set USER->cursor.status to normal for ECMA-48 <RIS> (hard reset).
2002-08-222002-08-22 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* aclocal.m4 (hurd_LIB_NCURSESW): New test, modified from GNU inetutils 1.4.0. * configure.in: Use hurd_LIB_NCURSESW. * config.make.in (LIBNCURSESW): New variable, substituted by configure. (NCURSESW_INCLUDE): Likewise. * Makefile (lib-subdirs): Add libcons. (prog-subdirs): Add console. console/ 2002-08-22 Marcus Brinkmann <marcus@gnu.org> * console.h: Move file to ../hurd/. * Makefile (LCLHDRS): Remove console.h. * display.c: Include <hurd/console.h> instead "console.h". * console.c: Likewise. hurd/ 2002-08-22 Marcus Brinkmann <marcus@gnu.org> * console.h: Move here from ../console/. * Makefile (INSTHDRS): Add console.h. utils/ 2002-08-22 Marcus Brinkmann <marcus@gnu.org> * Makefile: Include `../config.make' early on to get LIBNCURSESW variable from configure before including Makeconf. (targets) [LIBNCURSES]: Add console-ncurses. (SRCS) [LIBNCURSES]: Add console-ncurses.c. (HURDLIBS) [LIBNCURSES]: Add cons. (console-ncurses): New target. (console-ncurses-CPPFLAGS): New variable. (console-ncurses-LDLIBS): Likewise.
2002-08-222002-08-22 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* display.h: Add prototype for display_get_size. * display.c (display_get_size): New function. (nowait_file_changed): Update for new interfaces. * console.c (new_node): Use display_get_size to retrieve size of display node. (netfs_get_dirents): Initialize FIRST_VCONS to silence gcc warning.
2002-07-142002-07-15 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* display.c: Restore copyright notice until the papers by Kalle are actually received.
2002-06-27hurd/Marcus Brinkmann
2002-06-26 Marcus Brinkmann <marcus@gnu.org> * fs_notify.defs: Add MsgOption for send timeout. (dir_changed): Changed to simpleroutine. Change type of first argument to fs_notify_t. Add TICKNO argument. (file_changed): Likewise. * hurd_types.defs (fs_notify_t): New type. * hurd_types.h (fs_notify_t): Likewise. libdiskfs/ 2002-06-26 Marcus Brinkmann <marcus@gnu.org> * Makefile (DIST_FILES): Variable removed. (MIGSTUBS): Use fs_notifyUser.o, not ourfs_notifyUser.o. * ourfs_notify.defs: File removed. * diskfs.h (struct node): New members DIRMOD_TICK and FILEMOD_TICK. * node-make.c (diskfs_make_node): Initialize DIRMOD_TICK and FILEMOD_TICK. * dir-chg.c: Include "fs_notify_U.h" instead "ourfs_notify_U.h". (diskfs_S_dir_notice_changes): Use new dir_changed invocation instead nowait_dir_changed. (diskfs_notice_dirchange): Likewise. Increase tick number. Ignore send timeout error. * file-chg.c: Include "fs_notify_U.h" instead "ourfs_notify_U.h". (diskfs_S_file_notice_changes): Use new file_changed invocation instead nowait_file_changed. (diskfs_notice_filechange): Likewise. Increase tick number. Ignore send timeout error. console/ 2002-06-27 Marcus Brinkmann <marcus@gnu.org> * Makefile (MIGSTUBS): Add fs_notifyUser.o. (MIGSFLAGS): New variable. * console.c: Include "fs_notify_U.h". (struct modreq): New structure. (struct cons): New members DIRMOD_REQS and DIRMOD_TICK. (cons_notice_dirchange): New function. (vcons_lookup): Call cons_notice_dirchange. (netfs_S_dir_notice_changes): New function. (main): Initialize new members in CONS. * display.c (nowait_file_changed): Update to new interface (new argument TICKNO). (do_mach_notify_msg_accepted): Call nowait_file_changed with new argument. (display_notice_changes): Likewise. (display_notice_filechange): Likewise.
2002-06-252002-06-25 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* display.c (screen_shift_left): Don't increase DST twice in one iteration. * display.c (screen_shift_right): Likewise.
2002-06-242002-06-25 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* Makefile (LCLHDRS): Add priv.h and mutations.h. (MIGSTUBS): Add tioctlServer.o * console.c: Include <hurd/ioctl-types.h>. (new_node): Bump up st_size for display node. (S_tioctl_tiocflush, S_tioctl_tiocgwinsz, S_tioctl_tiocstart, S_tioctl_tiocstop, S_tioctl_tiocoutq, S_tioctl_tiocspgrp, S_tioctl_tiocgpgrp): New functions. (S_tioctl_tiocmodg, S_tioctl_tiocmods, S_tioctl_tiocexcl, S_tioctl_tiocnxcl, S_tioctl_tiocgeta, S_tioctl_tiocseta, S_tioctl_tiocsetaw, S_tioctl_tiocsetaf, S_tioctl_tiocgetd, S_tioctl_tiocsetd, S_tioctl_tiocdrain, S_tioctl_tiocmget, S_tioctl_tiocmset, S_tioctl_tiocsig, S_tioctl_tiocext, S_tioctl_tiocswinsz, S_tioctl_tiocremote, S_tioctl_tiocmbic, S_tioctl_tiocmbis, S_tioctl_tiocpkt, S_tioctl_tiocsti, S_tioctl_tioccdtr, S_tioctl_tiocsdtr, S_tioctl_tioccbrk, S_tioctl_tiocsbrk): New stubs. (console_demuxer): New function. (main): Don't call netfs_server_loop, but call ports_manage_port_operations_multithread, so we can use our own demuxer. * mutations.h: Use intran and outtran for netfs. * priv.h: Likewise. * console.h (cons_change_t): Add bits for bell_audible and bell_visible. (struct cons_display): Add member BELL. * display.c (struct changes): Add new members bell_audible and bell_visible. Add bit flag macro names for those. (display_flush_filechange): Start with first index in buffer. Signal bell events. (display_record_filechange): Set DISPLAY_CHANGE_MATRIX bit in the disjoint case after flushing the update. (display_output_one): Recognize '\a' as audible bell and '\Eg' as visible bell. (display_output_some): Handle bell updates.
2002-06-242002-06-24 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* console.h (cons_color_t): New enum type replacing color macros. (CONS_COLOR_MAX): New macro. (cons_change_t): New type. (struct cons_display): New member CHANGES. * console.c: Include "console.h". (DEFAULT_FOREGROUND, DEFAULT_FOREGROUND_NAME, DEFAULT_BACKGROUND, DEFAULT_BACKGROUND_NAME): New macros. (struct cons): New members foreground and background. (vcons_lookup): Pass colors to display_create invocation. (new_node): Fix st_size for display node. (color_names): New array. (options): Add options to set default foreground and background color. (parse_color): New function. (parse_opt): Implement new options. (netfs_append_args): Add new options to output. (main): Set default colors. * Makefile (DIST_FILES): Remove target. (MIGSTUBS): Remove ourfs_notifyUser.o and add notifyServer.o. * display.c: Do not include "ourfs_notify_U.h". (struct modreq): New member PENDING. (struct notify): New structure. (struct display): New members FILEMOD_REQS_PENDING and NOTIFY_PORT. (pager_read_page): Hand out previously returned pages. (pager_unlock_page): Assert that this is not called. (notify_class, notify_bucket): New port class and bucket global variables. (nowait_file_changed): New function, modified from mig output. (do_mach_notify_port_deleted): New stub function. (do_mach_notify_port_destroyed): New stub function. (do_mach_notify_no_senders): New stub function. (do_mach_notify_dead_name): New stub function. (do_mach_notify_send_once): New stub function. (do_mach_notify_msg_accepted): New function. (service_notifications): New function. (display_notice_changes): Call nowait_file_changed with new argument. Initialize REQ->pending. (display_notice_filechange): Remove arguments except DISPLAY. Set PENDING flags in pending filemod requests. Call nowait_file_changed with new notify argument. If notification will be sent, move modreq structure to pending list. (display_flush_filechange): Rewritten to use ring buffer to store changes. (user_create): Initialize new members of struct cons_display. (display_init): Initialize notify_class and notify_bucket. (display_create): Accept new arguments for default colors. Initialize new members of struct display. (display_destroy): Remove pending filemod requests and destroy the notification port. Do not free the display structure memory. (display_destroy_complete): New function. * display.h: Add new arguments to prototype of display_create.
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.