File:  [Coherent Logic Development] / freem / contrib / %KEY.m
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jan 19 02:04:04 2025 UTC (6 months, 1 week ago) by snw
Branches: MAIN, CoherentLogicDevelopment
CVS tags: v0-63-1-rc1, v0-63-0-rc1, v0-63-0, v0-62-3, v0-62-2, v0-62-1, v0-62-0, start, HEAD
FreeM

    1: %KEY(to,mode) ; A.Trocha ; keyb-handler [1999/01/29- 6:01:56]
    2: 	; $Source: /home/cvsroot/freem/contrib/%KEY.m,v $
    3: 	; $Revision: 1.1.1.1 $ $Date: 2025/01/19 02:04:04 $
    4: 	; <to> timeout (sec) default: no timeout
    5: 	; <mode> 0 or "" or n.d : return values
    6: 	;        1 : interpret
    7: 	;
    8: 	N buf,x,exec
    9: 	;
   10: 	S to=$G(to)
   11: 	I to="" S to=-1,exec="R *x"
   12: 	E  S exec="R *x:"_to
   13: 	;
   14: 	S buf=""
   15: 	;
   16: get	X exec I '$T Q ""
   17: 	;
   18: 	D add(x)
   19: 	;
   20: loop	R *x:0 I '$T G interp
   21: 	D add(x)
   22: 	G loop
   23: 	;
   24: interp	;--- interpret buffer and return string
   25: 	I $G(mode)=1 Q $$^%KEYINT(buf)
   26: 	Q buf
   27: 	;
   28: add(x)	;--- add key-value to buffer
   29: 	I buf'="" S buf=buf_"-"
   30: 	S buf=buf_x
   31: 	Q

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>