Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Replace rectype-name with recognizer rev. D suggested rectype-nt |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
bfdb6f7821155c7a7454bcc1c523481c |
| User & Date: | bernd 2020-07-06 12:48:55.847 |
Context
|
2020-07-06
| ||
| 13:53 | Snap card broken on Chromium? check-in: b795abe718 user: bernd tags: trunk | |
| 12:48 | Replace rectype-name with recognizer rev. D suggested rectype-nt check-in: bfdb6f7821 user: bernd tags: trunk | |
|
2020-06-28
| ||
| 22:32 | jni-based volume control only on Android check-in: 2a562578fe user: bernd tags: trunk | |
Changes
Changes to gui.fs.
| ︙ | ︙ | |||
10 11 12 13 14 15 16 17 18 19 20 21 22 23 | \ This program is distributed in the hope that it will be useful, \ but WITHOUT ANY WARRANTY; without even the implied warranty of \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \ GNU Affero General Public License for more details. \ You should have received a copy of the GNU Affero General Public License \ along with this program. If not, see <http://www.gnu.org/licenses/>. require minos2/widgets.fs also minos ctx 0= [IF] window-init [THEN] | > > | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | \ This program is distributed in the hope that it will be useful, \ but WITHOUT ANY WARRANTY; without even the implied warranty of \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \ GNU Affero General Public License for more details. \ You should have received a copy of the GNU Affero General Public License \ along with this program. If not, see <http://www.gnu.org/licenses/>. utf-8 set-encoding require minos2/widgets.fs also minos ctx 0= [IF] window-init [THEN] |
| ︙ | ︙ |
Changes to msg.fs.
| ︙ | ︙ | |||
2034 2035 2036 2037 2038 2039 2040 |
last->in ?dup-0=-IF source drop THEN
tuck - dup IF
\ ." text: '" forth:type ''' forth:emit forth:cr
$, msg-text
ELSE 2drop THEN ;
: text-rec ( addr u -- )
| | | | | | | 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 |
last->in ?dup-0=-IF source drop THEN
tuck - dup IF
\ ." text: '" forth:type ''' forth:emit forth:cr
$, msg-text
ELSE 2drop THEN ;
: text-rec ( addr u -- )
2drop ['] noop rectype-nt ;
: tag-rec ( addr u -- )
over c@ '#' = IF
over ?flush-text 2dup + to last->in
[: 1 /string
\ ." tag: '" forth:type ''' forth:emit forth:cr
$, msg-tag
;] rectype-nt
ELSE 2drop rectype-null THEN ;
: pk-rec ( addr u -- )
over c@ '@' = IF 2dup 1 /string ':' -skip nick>pk
2dup d0= IF 2drop 2drop rectype-null
ELSE
2>r over ?flush-text + to last->in 2r>
[:
\ ." signal: '" 85type ''' forth:emit forth:cr
$, msg-signal
;] rectype-nt
THEN
ELSE 2drop rectype-null THEN ;
: chain-rec ( addr u -- )
over c@ '!' = IF
2dup 1 /string dup 0= IF 2drop 2drop rectype-null EXIT THEN
snumber?
case
0 of endof
-1 of
msg-group-o .msg:log[] $[]#
over abs over u< IF over 0< IF + ELSE drop THEN
>r over ?flush-text + to last->in r>
[: msg-group-o .msg:log[] $[]@ chain, ;]
rectype-nt EXIT THEN
endof
2drop
endcase
THEN 2drop rectype-null ;
: http-rec ( addr u -- )
2dup "https://" string-prefix? >r
2dup "http://" string-prefix? r> or IF
over ?flush-text 2dup + to last->in
[: $, msg-url ;] rectype-nt
ELSE 2drop rectype-null THEN ;
forward hash-in
: jpeg? ( addr u -- flag )
dup 4 - 0 max safe/string ".jpg" str= ;
|
| ︙ | ︙ | |||
2103 2104 2105 2106 2107 2108 2109 | r> free throw THEN ELSE #0. THEN 2swap file-in 2swap dup IF >have+group THEN [: dup IF $, msg:thumbnail# ulit, msg-object ELSE 2drop THEN $, msg:image# ulit, msg-object ;] r> free throw r> to last->in ;] | | | | 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 |
r> free throw THEN
ELSE #0. THEN
2swap file-in
2swap dup IF >have+group THEN
[: dup IF $, msg:thumbnail# ulit, msg-object ELSE 2drop THEN
$, msg:image# ulit, msg-object ;]
r> free throw r> to last->in ;]
catch 0= IF rectype-nt EXIT THEN THEN
2drop rectype-null ;
: audio-rec ( addr u -- .. token )
2dup "audio:" string-prefix? IF
over ?flush-text
[: 2dup + >r
6 /string save-mem over >r
2dup [: forth:type ." .aidx" ;] $tmp file-in save-mem 2>r
[: forth:type ." .opus" ;] $tmp file-in save-mem 2r>
[: over >r $, msg:audio-idx# ulit, msg-object r> free throw
over >r $, msg:audio# ulit, msg-object r> free throw ;]
r> free throw r> to last->in ;]
catch 0= IF rectype-nt EXIT THEN THEN
2drop rectype-null ;
$Variable msg-recognizer
depth >r
' text-rec ' audio-rec ' img-rec ' http-rec ' chain-rec ' tag-rec ' pk-rec
depth r> - msg-recognizer set-stack
|
| ︙ | ︙ |
Changes to n2o.fs.
| ︙ | ︙ | |||
68 69 70 71 72 73 74 |
0 old-recs !@ recs-backlog >stack
0 old-order !@ order-backlog >stack
get-recognizers old-recs set-stack
also get-current context !
get-order old-order set-stack previous ;
: set-net2o-cmds ( -- )
['] n2o >body 1 set-order
| | | 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
0 old-recs !@ recs-backlog >stack
0 old-order !@ order-backlog >stack
get-recognizers old-recs set-stack
also get-current context !
get-order old-order set-stack previous ;
: set-net2o-cmds ( -- )
['] n2o >body 1 set-order
['] rec-nt 1 set-recognizers ;
: reset-net2o-cmds ( -- )
old-recs get-stack ?dup-IF set-recognizers THEN
old-order get-stack ?dup-IF set-order definitions previous THEN
old-recs $free old-order $free
recs-backlog stack# IF recs-backlog stack> old-recs ! THEN
order-backlog stack# IF order-backlog stack> old-order ! THEN ;
|
| ︙ | ︙ |
Changes to tools.fs.
| ︙ | ︙ | |||
369 370 371 372 373 374 375 |
hash-sanitize? IF fn-sanitize THEN ;
\ utf8 sanitizer
: utf8-sanitize ( addr u -- )
bounds ?DO
I ['] xc@+ catch IF
| | | 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 |
hash-sanitize? IF fn-sanitize THEN ;
\ utf8 sanitizer
: utf8-sanitize ( addr u -- )
bounds ?DO
I ['] xc@+ catch IF
[ xc-vector @ fixed-width = ] [IF] '?' [ELSE] '�' [THEN] xemit
drop I I' over -
['] x-size catch IF 2drop 1 THEN
ELSE xemit I - THEN
+LOOP nothrow ;
\ config stuff
|
| ︙ | ︙ |