:: :::: /hook/core/console/sur !: |% ++ console-action :: console to app $% [%det console-change] :: edit prompt line [%inn ~] :: enter session [%out ~] :: exit session [%ret ~] :: submit and clear == :: ++ console-buffer (list ,@c) :: command state ++ console-change :: network change $: ler=console-clock :: destination clock haw=@uvH :: source hash ted=console-edit :: state change == :: ++ console-clock ,[own=@ud his=@ud] :: vector clock ++ console-edit :: shared state change $% [%del p=@ud] :: delete one at [%ins p=@ud q=@c] :: insert at [%mor p=(list console-edit)] :: combination [%nop ~] :: no-op [%set p=console-buffer] :: discontinuity == :: ++ console-effect :: app to console $% [%bel ~] :: beep [%blk p=@ud q=@c] :: blink/match char at [%clr ~] :: clear screen [%det console-change] :: edit input [%nex ~] :: save and clear input [%pro console-prompt] :: set prompt [%tan p=(list tank)] :: classic tank :: [%taq p=tanq] :: modern tank [%txt p=tape] :: text line == :: ++ console-input :: input state $: pos=@ud :: cursor position say=console-share :: cursor == :: ++ console-prompt :: prompt definition $: vis=? :: input visible tag=term :: terminal mode cap=(list ,@c) :: caption == :: ++ console-share :: symmetric state $: ven=console-clock :: our vector clock leg=(list console-edit) :: unmerged edits buf=console-buffer :: console state == :: ++ dill-belt :: console input $% [%aro p=?(%d %l %r %u)] :: arrow key [%bac ~] :: true backspace [%cru p=@tas q=(list tank)] :: echo error [%ctl p=@ud] :: control-key [%del ~] :: true delete [%met p=@ud] :: meta-key [%ret ~] :: return [%rez p=@ud q=@ud] :: resize, cols, rows [%txt p=(list ,@c)] :: utf32 text [%yow p=gill] :: connect to app == :: ++ dill-blit :: console output $% [%bel ~] :: make a noise [%clr ~] :: clear the screen [%hop p=@ud] :: set cursor position [%pro p=(list ,@c)] :: show as cursor/line [%out p=(list ,@c)] :: send output line [%sag p=path q=*] :: save to jamfile [%sav p=path q=@] :: save to file == :: ++ gill ,@tas :: general contact --