OpenBSD src changes summary for 2017-02-08
==========================================

distrib/miniroot                        libexec/ld.so
regress/sys                             share/man
sys/arch/alpha/include                  sys/arch/amd64/include
sys/arch/amd64/stand/efiboot            sys/arch/arm/include
sys/arch/arm64/arm64                    sys/arch/arm64/include
sys/arch/arm64/stand/efiboot            sys/arch/hppa/include
sys/arch/i386/include                   sys/arch/luna88k/luna88k
sys/arch/m88k/include                   sys/arch/mips64/include
sys/arch/powerpc/include                sys/arch/sh/include
sys/arch/sparc64/include                sys/conf
sys/ddb                                 sys/dev/pci
sys/dev/pv                              sys/isofs/udf
sys/kern                                sys/net
sys/netinet                             sys/netinet6
sys/sys                                 usr.bin/nc
usr.bin/ssh                             usr.bin/tmux

== distrib =========================================================== 01/06 ==

  http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/distrib

miniroot

  ~ install.sub                           

  > Reformat get_responsfile() to fit to 80 columns. (rpe@)

  ~ install.sub                           

  > Use a variable for the sysctl output to shorten the for-loop to
  > fit to 80 columns. (rpe@)

  ~ install.sub                           

  > Localize PS3 at the top of v6_defroute() to make its assignment
  > fit to 80 columns. (rpe@)

  ~ install.sub                           

  > Add some line breaks to fit to 80 columns. (rpe@)

  ~ install.sub                           

  > Add some more line breaks to fit to 80 columns. (rpe@)

  ~ install.sub                           

  > Use a variable to make the prompt fit to 80 columns. (rpe@)

  ~ install.sub                           

  > Add even more line breaks to fit to 80 columns. (rpe@)

== libexec =========================================================== 02/06 ==

  http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/libexec

ld.so

  ~ library.c                             ~ loader.c

  > Provide size-generic ELF_NO_ADDR in <sys/exec_elf.h> and use that instead
  > of ELFDEFNNAME(NO_ADDR)
  > ok jca@ (guenther@)

== regress =========================================================== 03/06 ==

  http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/regress

sys

  ~ netinet/ipsec/Makefile                ~ netinet/ipsec/README
  ~ netinet/ipsec/ipsec.conf              

  > Encrypt UDP and TCP packets in test.  Use a sane transport config. (bluhm@)

  ~ netinet/ipsec/Makefile                

  > Fix IP address schema to make space for AH tests. (bluhm@)

== share ============================================================= 04/06 ==

  http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/share

man

  ~ man5/port-modules.5                   

  > modcargo-crates-1 -> modcargo-gen-crates
  > modcargo-crates-2 -> modcargo-gen-crates-licenses
  > discussed with semarie (danj@)

== sys =============================================================== 05/06 ==

  http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/sys

arch/alpha/include

  ~ exec.h                                

  > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except
  > leaving out the size, so that
  > ELFNAME2(exec,makecmds)
  > becomes
  > exec_elf_makecmds
  > instead of
  > exec_elf{32,64}_makecmds
  > and then delete the ELFNAME2() and ELFNAMEEND() macros.
  > Move the prototypes for functions local to exec_elf.c to there from
  > exec_elf.h.
  > Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
  > Change exec_conf.c to use the size-generic names and macros
  > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
  > _KERN_DO_ELF and _KERN_DO_ELF64 #defines.
  > ok jca@, encouragement from deraadt@ and tom@ (guenther@)

arch/amd64/include

  ~ exec.h                                

  > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except
  > leaving out the size, so that
  > ELFNAME2(exec,makecmds)
  > becomes
  > exec_elf_makecmds
  > instead of
  > exec_elf{32,64}_makecmds
  > and then delete the ELFNAME2() and ELFNAMEEND() macros.
  > Move the prototypes for functions local to exec_elf.c to there from
  > exec_elf.h.
  > Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
  > Change exec_conf.c to use the size-generic names and macros
  > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
  > _KERN_DO_ELF and _KERN_DO_ELF64 #defines.
  > ok jca@, encouragement from deraadt@ and tom@ (guenther@)

arch/amd64/stand/efiboot

  ~ efiboot.c                             

  > Retry BS->ExitBootServices() if it fails.
  > Reported by Ryan, pulse.purge at gmail.com (yasuoka@)

arch/arm/include

  ~ exec.h                                

  > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except
  > leaving out the size, so that
  > ELFNAME2(exec,makecmds)
  > becomes
  > exec_elf_makecmds
  > instead of
  > exec_elf{32,64}_makecmds
  > and then delete the ELFNAME2() and ELFNAMEEND() macros.
  > Move the prototypes for functions local to exec_elf.c to there from
  > exec_elf.h.
  > Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
  > Change exec_conf.c to use the size-generic names and macros
  > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
  > _KERN_DO_ELF and _KERN_DO_ELF64 #defines.
  > ok jca@, encouragement from deraadt@ and tom@ (guenther@)

arch/arm64/arm64

  ~ locore.S                              

  > Pass the physical address to the end of symbols to the kernel.  From
  > armv7 we inherited the mechanism to manually modify the kernel symbol
  > table to change the value of esym.  We don't use this, but instead use
  > the virtual address that is passed to the kernel.  This change makes us
  > only work on and hand out physical addresses.  Bump the efiboot version
  > to make this ABI change more visible. (patrick@)

arch/arm64/include

  ~ exec.h                                

  > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except
  > leaving out the size, so that
  > ELFNAME2(exec,makecmds)
  > becomes
  > exec_elf_makecmds
  > instead of
  > exec_elf{32,64}_makecmds
  > and then delete the ELFNAME2() and ELFNAMEEND() macros.
  > Move the prototypes for functions local to exec_elf.c to there from
  > exec_elf.h.
  > Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
  > Change exec_conf.c to use the size-generic names and macros
  > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
  > _KERN_DO_ELF and _KERN_DO_ELF64 #defines.
  > ok jca@, encouragement from deraadt@ and tom@ (guenther@)

arch/arm64/stand/efiboot

  ~ efiboot.c                             

  > Retry BS->ExitBootServices() if it fails, like on amd64.  Also we need
  > to make sure to pass the current mapkey to prove EFI that we know the
  > current memory map and its constraints.  Otherwise EFI can choose to
  > only partially exit until we pass the correct key.  As we already use
  > the memory map to allocate memory for the kernel, split the previous
  > function into one simply retrieving the table and another one who uses
  > the map to allocate memory.  At some point it would be nice to actually
  > pass the table to the kernel since its data is more reliable than the
  > FDT only.  While there, sync a bit of style with the amd64 version.
  > (patrick@)

  ~ conf.c                                ~ exec.c

  > Pass the physical address to the end of symbols to the kernel.  From
  > armv7 we inherited the mechanism to manually modify the kernel symbol
  > table to change the value of esym.  We don't use this, but instead use
  > the virtual address that is passed to the kernel.  This change makes us
  > only work on and hand out physical addresses.  Bump the efiboot version
  > to make this ABI change more visible. (patrick@)

arch/hppa/include

  ~ exec.h                                

  > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except
  > leaving out the size, so that
  > ELFNAME2(exec,makecmds)
  > becomes
  > exec_elf_makecmds
  > instead of
  > exec_elf{32,64}_makecmds
  > and then delete the ELFNAME2() and ELFNAMEEND() macros.
  > Move the prototypes for functions local to exec_elf.c to there from
  > exec_elf.h.
  > Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
  > Change exec_conf.c to use the size-generic names and macros
  > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
  > _KERN_DO_ELF and _KERN_DO_ELF64 #defines.
  > ok jca@, encouragement from deraadt@ and tom@ (guenther@)

arch/i386/include

  ~ exec.h                                

  > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except
  > leaving out the size, so that
  > ELFNAME2(exec,makecmds)
  > becomes
  > exec_elf_makecmds
  > instead of
  > exec_elf{32,64}_makecmds
  > and then delete the ELFNAME2() and ELFNAMEEND() macros.
  > Move the prototypes for functions local to exec_elf.c to there from
  > exec_elf.h.
  > Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
  > Change exec_conf.c to use the size-generic names and macros
  > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
  > _KERN_DO_ELF and _KERN_DO_ELF64 #defines.
  > ok jca@, encouragement from deraadt@ and tom@ (guenther@)

arch/luna88k/luna88k

  ~ mainbus.c                             

  > Now pcexmem(4) and pcexio(4) are attached at cbus(4), we do not need to
  > include "pcex.h" here. (aoyama@)

arch/m88k/include

  ~ exec.h                                

  > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except
  > leaving out the size, so that
  > ELFNAME2(exec,makecmds)
  > becomes
  > exec_elf_makecmds
  > instead of
  > exec_elf{32,64}_makecmds
  > and then delete the ELFNAME2() and ELFNAMEEND() macros.
  > Move the prototypes for functions local to exec_elf.c to there from
  > exec_elf.h.
  > Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
  > Change exec_conf.c to use the size-generic names and macros
  > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
  > _KERN_DO_ELF and _KERN_DO_ELF64 #defines.
  > ok jca@, encouragement from deraadt@ and tom@ (guenther@)

arch/mips64/include

  ~ exec.h                                

  > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except
  > leaving out the size, so that
  > ELFNAME2(exec,makecmds)
  > becomes
  > exec_elf_makecmds
  > instead of
  > exec_elf{32,64}_makecmds
  > and then delete the ELFNAME2() and ELFNAMEEND() macros.
  > Move the prototypes for functions local to exec_elf.c to there from
  > exec_elf.h.
  > Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
  > Change exec_conf.c to use the size-generic names and macros
  > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
  > _KERN_DO_ELF and _KERN_DO_ELF64 #defines.
  > ok jca@, encouragement from deraadt@ and tom@ (guenther@)

arch/powerpc/include

  ~ exec.h                                

  > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except
  > leaving out the size, so that
  > ELFNAME2(exec,makecmds)
  > becomes
  > exec_elf_makecmds
  > instead of
  > exec_elf{32,64}_makecmds
  > and then delete the ELFNAME2() and ELFNAMEEND() macros.
  > Move the prototypes for functions local to exec_elf.c to there from
  > exec_elf.h.
  > Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
  > Change exec_conf.c to use the size-generic names and macros
  > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
  > _KERN_DO_ELF and _KERN_DO_ELF64 #defines.
  > ok jca@, encouragement from deraadt@ and tom@ (guenther@)

arch/sh/include

  ~ exec.h                                

  > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except
  > leaving out the size, so that
  > ELFNAME2(exec,makecmds)
  > becomes
  > exec_elf_makecmds
  > instead of
  > exec_elf{32,64}_makecmds
  > and then delete the ELFNAME2() and ELFNAMEEND() macros.
  > Move the prototypes for functions local to exec_elf.c to there from
  > exec_elf.h.
  > Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
  > Change exec_conf.c to use the size-generic names and macros
  > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
  > _KERN_DO_ELF and _KERN_DO_ELF64 #defines.
  > ok jca@, encouragement from deraadt@ and tom@ (guenther@)

arch/sparc64/include

  ~ exec.h                                

  > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except
  > leaving out the size, so that
  > ELFNAME2(exec,makecmds)
  > becomes
  > exec_elf_makecmds
  > instead of
  > exec_elf{32,64}_makecmds
  > and then delete the ELFNAME2() and ELFNAMEEND() macros.
  > Move the prototypes for functions local to exec_elf.c to there from
  > exec_elf.h.
  > Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
  > Change exec_conf.c to use the size-generic names and macros
  > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
  > _KERN_DO_ELF and _KERN_DO_ELF64 #defines.
  > ok jca@, encouragement from deraadt@ and tom@ (guenther@)

conf

  ~ files                                 

  > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except
  > leaving out the size, so that
  > ELFNAME2(exec,makecmds)
  > becomes
  > exec_elf_makecmds
  > instead of
  > exec_elf{32,64}_makecmds
  > and then delete the ELFNAME2() and ELFNAMEEND() macros.
  > Move the prototypes for functions local to exec_elf.c to there from
  > exec_elf.h.
  > Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
  > Change exec_conf.c to use the size-generic names and macros
  > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
  > _KERN_DO_ELF and _KERN_DO_ELF64 #defines.
  > ok jca@, encouragement from deraadt@ and tom@ (guenther@)

ddb

  ~ db_elf.c                              ~ db_prof.c

  > Use ELF_ST_{BIND,TYPE} instead of ELFDEFNNAME(ST_{BIND,TYPE})
  > ok jca@ (guenther@)

dev/pci

  ~ mfii.c                                

  > fix a mixup of lengths of addresses and lengths in the aen_start sgl
  > basically use htolem64 to set the address and htolem32 for the
  > length, not the other way round. lucky this is mostly run on x86.
  > found by Jon Kloske (dlg@)

dev/pv

  ~ xen.c                                 

  > Fixup incorrect test when allocating grant table entries
  > An xnf & xbf attach/detach loop has revealed that sometimes when we're
  > about to free a grant table entry that is still in use which is a grave
  > mistake code wise.  Turned out we could allocate an entry twice because
  > of an incorrect test that took flags value into account when making the
  > decision regarding availability of a given entry.  At the same time,
  > upon releasing the entry we explicitly CAS in 0 into the flags making
  > this check bogus.
  > While here be explicit about starting flags by initializing them to 0
  > and always panic when the "double free" condition is encountered.
  > rzalamena@ has lent me his eyes and has double-checked the condition.
  > (mikeb@)

  ~ xen.c                                 ~ xenvar.h

  > Introduce Xen interrupt barriers
  > intr_barrier(9) is useful to make sure that after an interrupt is
  > masked, the interrupt handler for the device has finished executing
  > before proceeding with further device configuration.
  > However, since Xen interrupt handlers run in the thread context, we
  > need to make sure that they have finished as well.  By scheduling a
  > xen_barrier_task modelled after (or rather copied ;) ifq_barrier_task
  > we can ensure that the interrupt handler is no longer running. (mikeb@)

  ~ if_xnf.c                              

  > Switch to Xen interrupt barrier (mikeb@)

  ~ xbf.c                                 

  > Abort transactions with non-retriable error when device is stopped (mikeb@)

  ~ xbf.c                                 

  > Switch to Xen interrupt barrier and improve state transitions (mikeb@)

  ~ xbf.c                                 

  > Cleanup the device removal path
  > When destroying the ring all transfers should be already gone so there
  > should be no need to repeat ourselves after xbf_stop has done its work.
  > Get rid of the yield() that was probably masking some issues that have
  > been since fixed. (mikeb@)

  ~ xbf.c                                 

  > Specify the read/write DMA flag for bounce buffers (mikeb@)

  ~ xbf.c                                 

  > Improve error handling for poll timeouts (mikeb@)

isofs/udf

  ~ udf_vfsops.c                          

  > Move a pointer deref to after a NULL test.
  > ok krw@ (jsg@)

kern

  ~ exec_elf.c                            

  > Provide size-generic ELF_NO_ADDR in <sys/exec_elf.h> and use that instead
  > of ELFDEFNNAME(NO_ADDR)
  > ok jca@ (guenther@)

  ~ exec_elf.c                            

  > elf{32,64}_check_brand() isn't used; delete it
  > ok jca@ (guenther@)

  ~ exec_elf.c                            

  > Change ELFNAME(read_from)'s buf parameter to be void*, eliminating a cast
  > from all but one call
  > ok jca@ (guenther@)

  ~ exec_elf.c                            

  > Move ELF_AUX_ENTRIES from exec_elf.h to exec_elf.c; it's totally internal
  > and not something we guarantee to userspace
  > ok jca@ (guenther@)

  - exec_elf32.c                          - exec_elf64.c
  ~ exec_conf.c                           ~ exec_elf.c

  > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except
  > leaving out the size, so that
  > ELFNAME2(exec,makecmds)
  > becomes
  > exec_elf_makecmds
  > instead of
  > exec_elf{32,64}_makecmds
  > and then delete the ELFNAME2() and ELFNAMEEND() macros.
  > Move the prototypes for functions local to exec_elf.c to there from
  > exec_elf.h.
  > Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
  > Change exec_conf.c to use the size-generic names and macros
  > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
  > _KERN_DO_ELF and _KERN_DO_ELF64 #defines.
  > ok jca@, encouragement from deraadt@ and tom@ (guenther@)

  ~ subr_pool.c                           

  > the splvm() in pool_gc_pages is unecessary now.
  > all pools set their ipls unconditionally now, so there isn't a need
  > to second guess them.
  > pointed out by and ok jmatthew@ (dlg@)

  ~ kern_exec.c                           ~ kern_exit.c
  ~ kern_fork.c                           

  > Delete the obsolete fork/exec/exit emulation hooks.
  > ok mpi@ dlg@ (guenther@)

  ~ exec_elf.c                            

  > Remove support for forcing the ELF interpreter to a specific address,
  > last used by COMPAT_SYSV which was removed in 2011.
  > ok millert@ (guenther@)

net

  ~ pf_lb.c                               

  > Remove an uneeded NULL test which was after a deref.
  > ok mpi@ henning@ sashan@ (jsg@)

netinet

  ~ ip_mroute.c                           

  > Test for NULL before dereferencing a pointer not after.
  > ok krw@ (jsg@)

  ~ ipsec_input.c                         

  > Remove the ipsec protocol callbacks which all do the same.  Implement
  > it in ipsec_common_input_cb() instead.  The code that was copied
  > to ah6_input_cb() is now in ip6_ours() so we can call it directly.
  > OK mpi@ (bluhm@)

netinet6

  ~ ip6_input.c                           ~ ip6_var.h

  > Remove the ipsec protocol callbacks which all do the same.  Implement
  > it in ipsec_common_input_cb() instead.  The code that was copied
  > to ah6_input_cb() is now in ip6_ours() so we can call it directly.
  > OK mpi@ (bluhm@)

sys

  ~ exec_elf.h                            

  > Provide size-generic ELF_NO_ADDR in <sys/exec_elf.h> and use that instead
  > of ELFDEFNNAME(NO_ADDR)
  > ok jca@ (guenther@)

  ~ exec_elf.h                            

  > elf{32,64}_check_brand() isn't used; delete it
  > ok jca@ (guenther@)

  ~ exec_elf.h                            

  > Move ELF_AUX_ENTRIES from exec_elf.h to exec_elf.c; it's totally internal
  > and not something we guarantee to userspace
  > ok jca@ (guenther@)

  ~ exec_elf.h                            

  > In exec_elf.c: expand ELFNAME(), ELFNAME2(), and ELFNAMEEND() except
  > leaving out the size, so that
  > ELFNAME2(exec,makecmds)
  > becomes
  > exec_elf_makecmds
  > instead of
  > exec_elf{32,64}_makecmds
  > and then delete the ELFNAME2() and ELFNAMEEND() macros.
  > Move the prototypes for functions local to exec_elf.c to there from
  > exec_elf.h.
  > Simplify the SMALL_KERNEL conditionals around the ELF coredump code.
  > Change exec_conf.c to use the size-generic names and macros
  > Remove exec_elf{32,64}.c and just build exec_elf.c; delete the
  > _KERN_DO_ELF and _KERN_DO_ELF64 #defines.
  > ok jca@, encouragement from deraadt@ and tom@ (guenther@)

  ~ proc.h                                

  > Delete the obsolete fork/exec/exit emulation hooks.
  > ok mpi@ dlg@ (guenther@)

  ~ exec.h                                

  > Remove support for forcing the ELF interpreter to a specific address,
  > last used by COMPAT_SYSV which was removed in 2011.
  > ok millert@ (guenther@)

== usr.bin =========================================================== 06/06 ==

  http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin

nc

  ~ netcat.c                              

  > Due to non-blocking sockets, tls_handshake() could wait in a busy
  > loop.  Use an additional poll(2) during the handshake and also
  > respect the -w timeout option there.
  > From Shuo Chen; OK beck@ (bluhm@)

  ~ netcat.c                              

  > Avoid double close(2) in netcat.  After every call to readwrite()
  > there is already a close(2), so do not do it in readwrite().
  > OK beck@ (bluhm@)

  ~ netcat.c                              

  > Avoid a busy loop in netcat's tls_close().  Reuse the tls_handshake()
  > wrapper that calls poll(2) and handles the -w timeout.
  > OK beck@ (bluhm@)

ssh

  ~ ssh-keygen.c                          

  > Avoid printf %s NULL.  From semarie@, OK djm@ (millert@)

tmux

  ~ tmux.h                                ~ window.c

  > Remove event watermarks, don't work well enough to be worth it. (nicm@)

  ~ grid.c                                

  > Tweak how much we expand lines by. (nicm@)

  ~ screen-write.c                        ~ tmux.h
  ~ tty.c                                 

  > Trying to avoid the occasional newline by saving the last cell on screen
  > is not actually helping us much and just adds complexity, so don't
  > bother. (nicm@)

  ~ tty.c                                 

  > Log size of output buffer as well. (nicm@)

  ~ resize.c                              ~ tty.c

  > Improve some of the logging on resize. (nicm@)

  ~ tty.c                                 

  > Remove unnecessary duplicate check. (nicm@)

  ~ grid.c                                ~ screen-redraw.c
  ~ screen-write.c                        

  > Add a helper to store a cell, and some tidying. (nicm@)

  ~ input.c                               ~ screen-write.c
  ~ server-client.c                       ~ tty.c

  > Some other tidying bits. (nicm@)

  ~ tty.c                                 

  > Fix clear start of line. (nicm@)

  ~ grid-view.c                           ~ grid.c
  ~ input.c                               ~ screen-write.c
  ~ screen.c                              ~ tmux.h
  ~ tty.c                                 

  > Collect sequences of printable ASCII characters and process them
  > together instead of handling them one by one. This is significantly
  > faster. Sequences are terminated when we reach the end of the line, fill
  > the internal buffer, or a different character is seen by the input
  > parser (an escape sequence, or UTF-8).
  > Rather than writing collected sequences out immediately, hold them until
  > it is necessary (another screen modification, or we consume all
  > available data). This means we can discard changes that would have no
  > effect (for example, lines that would just be scrolled off the screen or
  > cleared). This reduces the total amount of data we write out to the
  > terminal - not important for fast terminals, but a big help with slow
  > (like xterm). (nicm@)

  ~ input.c                               ~ screen-write.c
  ~ tmux.h                                ~ tty-term.c
  ~ tty.c                                 

  > Add support for scroll up escape sequence (CSI S) and use it when
  > possible instead of sending individual line feeds. (nicm@)

  ~ window-copy.c                         

  > window_copy_pagedown shouldn't reset the mode anymore, instead let the
  > caller do it so it can free the marks. Problem reported by attila at
  > stalphonsos dot com. (nicm@)

  ~ tty.c                                 

  > Do not adjust region lower by pane offset when scrolling up, it is
  > already an absolute position. (nicm@)

  ~ tmux.h                                ~ tty.c

  > Add a common function to invalidate all the terminal cached state. (nicm@)

  ~ tmux.h                                ~ tty.c

  > Another helper function to write to terminal and log. (nicm@)

===============================================================================
_______________________________________________
odc mailing list
[email protected]
http://www.squish.net/mailman/listinfo/odc

Reply via email to