Browser-to-Racket
Update the browser collection to use Racket lang instead of mzscheme.
This commit is contained in:
parent
9c4fcd4623
commit
2f2bbd09cc
|
@ -1,5 +1,5 @@
|
||||||
(module browser-sig mzscheme
|
#lang racket
|
||||||
(require mzlib/unit
|
(require racket/unit
|
||||||
"private/sig.rkt")
|
"private/sig.rkt")
|
||||||
|
|
||||||
(provide browser^)
|
(provide browser^)
|
||||||
|
@ -7,4 +7,4 @@
|
||||||
(define-signature browser^
|
(define-signature browser^
|
||||||
((open hyper^)
|
((open hyper^)
|
||||||
(open html-export^)
|
(open html-export^)
|
||||||
(open bullet-export^))))
|
(open bullet-export^)))
|
||||||
|
|
|
@ -1,15 +1,16 @@
|
||||||
(module browser-unit mzscheme
|
|
||||||
(require mzlib/unit
|
#lang racket/base
|
||||||
|
(require racket/unit
|
||||||
mred/mred-sig
|
mred/mred-sig
|
||||||
setup/plt-installer-sig
|
setup/plt-installer-sig
|
||||||
net/tcp-sig
|
net/tcp-sig
|
||||||
net/url-sig
|
net/url-sig
|
||||||
net/url-unit
|
net/url-unit
|
||||||
"browser-sig.rkt"
|
"browser-sig.rkt"
|
||||||
"private/sig.rkt"
|
|
||||||
"private/bullet.rkt"
|
"private/bullet.rkt"
|
||||||
"private/html.rkt"
|
"private/html.rkt"
|
||||||
"private/hyper.rkt")
|
"private/hyper.rkt"
|
||||||
|
"private/sig.rkt")
|
||||||
|
|
||||||
(provide browser@)
|
(provide browser@)
|
||||||
|
|
||||||
|
@ -31,8 +32,4 @@
|
||||||
pre-browser@
|
pre-browser@
|
||||||
setup:plt-installer^
|
setup:plt-installer^
|
||||||
mred^
|
mred^
|
||||||
url^)))
|
url^))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
(module browser mzscheme
|
#lang racket
|
||||||
(require mzlib/unit
|
(require racket/unit
|
||||||
mred
|
racket/gui
|
||||||
mred/mred-sig
|
mred/mred-sig
|
||||||
setup/plt-installer-sig
|
setup/plt-installer-sig
|
||||||
setup/plt-installer
|
setup/plt-installer
|
||||||
|
@ -12,4 +12,4 @@
|
||||||
|
|
||||||
(provide-signature-elements browser^)
|
(provide-signature-elements browser^)
|
||||||
|
|
||||||
(define-values/invoke-unit/infer browser@))
|
(define-values/invoke-unit/infer browser@)
|
||||||
|
|
|
@ -36,7 +36,7 @@ launching an external browser (such as Firefox).
|
||||||
@declare-exporting[browser/browser browser]
|
@declare-exporting[browser/browser browser]
|
||||||
|
|
||||||
The browser supports basic HTML commands, plus special Racket hyperlinks
|
The browser supports basic HTML commands, plus special Racket hyperlinks
|
||||||
of the form @litchar{<A MZSCHEME=sexpr>...</A>}. When the user clicks
|
of the form @litchar{<A RACKET=sexpr>...</A>}. When the user clicks
|
||||||
on such a link, the string @racket[sexpr] is parsed as a Racket program
|
on such a link, the string @racket[sexpr] is parsed as a Racket program
|
||||||
and evaluated. Since @racket[sexpr] is likely to contain Racket
|
and evaluated. Since @racket[sexpr] is likely to contain Racket
|
||||||
strings, and since escape characters are difficult for people to read, a
|
strings, and since escape characters are difficult for people to read, a
|
||||||
|
@ -44,7 +44,7 @@ strings, and since escape characters are difficult for people to read, a
|
||||||
character before it is parsed. Thus,
|
character before it is parsed. Thus,
|
||||||
|
|
||||||
@verbatim[#:indent 2]{
|
@verbatim[#:indent 2]{
|
||||||
<A MZSCHEME="|This goes nowhere.|">Nowhere</A>
|
<A RACKET="|This goes nowhere.|">Nowhere</A>
|
||||||
}
|
}
|
||||||
|
|
||||||
creates a ``Nowhere'' hyperlink, which executes the Racket program
|
creates a ``Nowhere'' hyperlink, which executes the Racket program
|
||||||
|
@ -59,15 +59,15 @@ clicks on ``Nowhere,'' the result is a new page that says ``This goes
|
||||||
nowhere.''
|
nowhere.''
|
||||||
|
|
||||||
The browser also treats comment forms containing
|
The browser also treats comment forms containing
|
||||||
@litchar{MZSCHEME=sexpr} specially. Whereas the
|
@litchar{RACKET=sexpr} specially. Whereas the
|
||||||
@litchar{<A MZSCHEME=sexpr>...</A>} form executes the expression when
|
@litchar{<A RACKET=sexpr>...</A>} form executes the expression when
|
||||||
the user clicks, the @litchar{MZSCHEME} expression in a comment is
|
the user clicks, the @litchar{RACKET} expression in a comment is
|
||||||
executed immediately during HTML rendering. If the result is a string,
|
executed immediately during HTML rendering. If the result is a string,
|
||||||
the comment is replaced in the input HTML stream with the content of the
|
the comment is replaced in the input HTML stream with the content of the
|
||||||
string. Thus,
|
string. Thus,
|
||||||
|
|
||||||
@verbatim[#:indent 2]{
|
@verbatim[#:indent 2]{
|
||||||
<!-- MZSCHEME="(format |<B>Here</B>: ~a| (current-directory))" -->
|
<!-- RACKET="(format |<B>Here</B>: ~a| (current-directory))" -->
|
||||||
}
|
}
|
||||||
|
|
||||||
inserts the path of the current working directory into the containing
|
inserts the path of the current working directory into the containing
|
||||||
|
@ -77,10 +77,10 @@ return values are ignored.
|
||||||
|
|
||||||
If the html file is being accessed as a @litchar{file:} url, the
|
If the html file is being accessed as a @litchar{file:} url, the
|
||||||
@racket[current-load-relative-directory] parameter is set to the
|
@racket[current-load-relative-directory] parameter is set to the
|
||||||
directory during the evaluation of the mzscheme code (in both
|
directory during the evaluation of the Racket code (in both
|
||||||
examples). The Racket code is executed through @racket[eval].
|
examples). The Racket code is executed through @racket[eval].
|
||||||
|
|
||||||
The @litchar{MZSCHEME} forms are disabled unless the web page is a
|
The @litchar{RACKET} forms are disabled unless the web page is a
|
||||||
@litchar{file:} url that points into the @racket[doc] collection.
|
@litchar{file:} url that points into the @racket[doc] collection.
|
||||||
|
|
||||||
@defproc[(open-url [url (or/c url? string? input-port?)]) (is-a?/c hyper-frame%)]{
|
@defproc[(open-url [url (or/c url? string? input-port?)]) (is-a?/c hyper-frame%)]{
|
||||||
|
@ -94,7 +94,7 @@ The @litchar{MZSCHEME} forms are disabled unless the web page is a
|
||||||
}
|
}
|
||||||
|
|
||||||
@defboolparam[html-eval-ok ok?]{
|
@defboolparam[html-eval-ok ok?]{
|
||||||
A parameter that determines whether @litchar{MZSCHEME=} tags are
|
A parameter that determines whether @litchar{RACKET=} tags are
|
||||||
evaluated.
|
evaluated.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -145,7 +145,7 @@ The @litchar{MZSCHEME} forms are disabled unless the web page is a
|
||||||
|
|
||||||
@definterface[hyper-text<%> ()]{
|
@definterface[hyper-text<%> ()]{
|
||||||
@defmethod[(url-allows-evalling? [url (or/c port? url?)]) boolean?]{
|
@defmethod[(url-allows-evalling? [url (or/c port? url?)]) boolean?]{
|
||||||
Determines if @litchar{MZSCHEME} annotations are actually evaluated,
|
Determines if @litchar{RACKET} annotations are actually evaluated,
|
||||||
for a given url.
|
for a given url.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -244,8 +244,8 @@ The @litchar{MZSCHEME} forms are disabled unless the web page is a
|
||||||
}
|
}
|
||||||
|
|
||||||
@defmethod[(eval-racket-string [str string?]) any]{
|
@defmethod[(eval-racket-string [str string?]) any]{
|
||||||
Called to handle the @litchar{<A MZSCHEME="expr">...</A>} tag and
|
Called to handle the @litchar{<A RACKET="expr">...</A>} tag and
|
||||||
@litchar{<! MZSCHEME="expr">} comments (see above). Evaluates the
|
@litchar{<! RACKET="expr">} comments (see above). Evaluates the
|
||||||
string; if the result is a string, it is opened as an HTML page.
|
string; if the result is a string, it is opened as an HTML page.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -559,11 +559,11 @@ The @litchar{MZSCHEME} forms are disabled unless the web page is a
|
||||||
@defproc[(render-html-to-text [in input-port?]
|
@defproc[(render-html-to-text [in input-port?]
|
||||||
[dest (is-a? html-text<%>)]
|
[dest (is-a? html-text<%>)]
|
||||||
[load-img? any/c]
|
[load-img? any/c]
|
||||||
[eval-mz? any/c])
|
[eval-rkt? any/c])
|
||||||
void?]{
|
void?]{
|
||||||
Reads HTML from @racket[in] and renders it to @racket[dest]. If
|
Reads HTML from @racket[in] and renders it to @racket[dest]. If
|
||||||
@racket[load-img?] is @racket[#f], then images are rendered as Xed-out
|
@racket[load-img?] is @racket[#f], then images are rendered as Xed-out
|
||||||
boxes. If @racket[eval-mz?] is @racket[#f], then @litchar{MZSCHEME}
|
boxes. If @racket[eval-rkt?] is @racket[#f], then @litchar{RACKET}
|
||||||
hyperlink expressions and comments are not evaluated.
|
hyperlink expressions and comments are not evaluated.
|
||||||
|
|
||||||
Uses the style named @racket["Html Standard"] in the editor's
|
Uses the style named @racket["Html Standard"] in the editor's
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
(module bullet-snip mzscheme
|
#lang racket
|
||||||
(require "private/bullet.rkt")
|
(require "private/bullet.rkt")
|
||||||
(provide (rename bullet-snip-class snip-class)))
|
(provide (rename-out (bullet-snip-class snip-class)))
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#lang racket/base
|
#lang racket/base
|
||||||
(require string-constants
|
(require string-constants
|
||||||
mred
|
racket/gui
|
||||||
racket/class
|
racket/class
|
||||||
racket/file
|
racket/file
|
||||||
racket/list
|
racket/list
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
|
#lang racket
|
||||||
(module htmltext mzscheme
|
(require racket/unit
|
||||||
(require mzlib/unit
|
racket/class
|
||||||
mzlib/class
|
|
||||||
"browser-sig.rkt"
|
"browser-sig.rkt"
|
||||||
"private/sig.rkt"
|
"private/sig.rkt"
|
||||||
"private/html.rkt"
|
"private/html.rkt"
|
||||||
"private/bullet.rkt"
|
"private/bullet.rkt"
|
||||||
net/url
|
net/url
|
||||||
net/url-sig
|
net/url-sig
|
||||||
mred
|
racket/gui
|
||||||
mred/mred-unit
|
mred/mred-unit
|
||||||
mred/mred-sig
|
mred/mred-sig
|
||||||
browser/external)
|
browser/external)
|
||||||
|
@ -28,7 +27,7 @@
|
||||||
add-link
|
add-link
|
||||||
add-tag
|
add-tag
|
||||||
make-link-style
|
make-link-style
|
||||||
add-scheme-callback
|
add-racket-callback
|
||||||
add-thunk-callback
|
add-thunk-callback
|
||||||
post-url))
|
post-url))
|
||||||
|
|
||||||
|
@ -47,7 +46,7 @@
|
||||||
(define/public (add-tag label pos) (void))
|
(define/public (add-tag label pos) (void))
|
||||||
(define/public (make-link-style pos endpos)
|
(define/public (make-link-style pos endpos)
|
||||||
(change-style url-delta pos endpos))
|
(change-style url-delta pos endpos))
|
||||||
(define/public (add-scheme-callback pos endpos scheme) (void))
|
(define/public (add-racket-callback pos endpos racket) (void))
|
||||||
(define/public (add-thunk-callback pos endpos thunk)
|
(define/public (add-thunk-callback pos endpos thunk)
|
||||||
(set-clickback pos endpos (lambda (e start-pos eou-pos)
|
(set-clickback pos endpos (lambda (e start-pos eou-pos)
|
||||||
(thunk))))
|
(thunk))))
|
||||||
|
@ -73,5 +72,5 @@
|
||||||
|
|
||||||
(provide html-text<%>
|
(provide html-text<%>
|
||||||
html-text-mixin
|
html-text-mixin
|
||||||
render-html-to-text))
|
render-html-to-text)
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#lang setup/infotab
|
#lang setup/infotab
|
||||||
|
|
||||||
(define tools (list (list "tool.rkt")))
|
(define drracket-tools (list (list "tool.rkt")))
|
||||||
(define tool-names (list "Browser"))
|
(define drracket-tool-names (list "Browser"))
|
||||||
|
|
||||||
(define scribblings '(("browser.scrbl" () (gui-library))))
|
(define scribblings '(("browser.scrbl" () (gui-library))))
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
#lang scheme/base
|
#lang racket/base
|
||||||
(require "browser.rkt")
|
(require "browser.rkt")
|
||||||
(provide (all-from-out "browser.rkt"))
|
(provide (all-from-out "browser.rkt"))
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#lang scheme/unit
|
#lang racket/unit
|
||||||
|
|
||||||
(require "sig.rkt")
|
(require "sig.rkt")
|
||||||
|
|
||||||
|
@ -12,9 +12,9 @@
|
||||||
(export (rename relative-btree^
|
(export (rename relative-btree^
|
||||||
(create-btree make-btree)))
|
(create-btree make-btree)))
|
||||||
|
|
||||||
(define-struct btree (root) #:mutable)
|
(struct btree (root) #:mutable)
|
||||||
|
|
||||||
(define-struct node (pos data parent left right color) #:mutable)
|
(struct node (pos data parent left right color) #:mutable)
|
||||||
|
|
||||||
(define (adjust-offsets n new-child)
|
(define (adjust-offsets n new-child)
|
||||||
(when new-child
|
(when new-child
|
||||||
|
@ -66,7 +66,7 @@
|
||||||
|
|
||||||
|
|
||||||
(define (insert before? n btree pos data)
|
(define (insert before? n btree pos data)
|
||||||
(let ([new (make-node pos data #f #f #f 'black)])
|
(let ([new (node pos data #f #f #f 'black)])
|
||||||
(if (not (btree-root btree))
|
(if (not (btree-root btree))
|
||||||
(set-btree-root! btree new)
|
(set-btree-root! btree new)
|
||||||
|
|
||||||
|
@ -166,7 +166,7 @@
|
||||||
(loop (node-right n) so-far so-far-pos npos)]))))))
|
(loop (node-right n) so-far so-far-pos npos)]))))))
|
||||||
|
|
||||||
(define (create-btree)
|
(define (create-btree)
|
||||||
(make-btree #f))
|
(btree #f))
|
||||||
|
|
||||||
(define (btree-get btree pos)
|
(define (btree-get btree pos)
|
||||||
(let-values ([(n npos) (find-following-node btree pos)])
|
(let-values ([(n npos) (find-following-node btree pos)])
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
(module bullet mzscheme
|
#lang racket
|
||||||
(require mred
|
(require racket/gui
|
||||||
mzlib/class)
|
racket/class)
|
||||||
|
|
||||||
(provide bullet-snip%
|
(provide bullet-snip%
|
||||||
get-bullet-width
|
get-bullet-width
|
||||||
bullet-size
|
bullet-size
|
||||||
bullet-snip-class)
|
bullet-snip-class)
|
||||||
|
|
||||||
(define snip-class-name "(lib \"bullet-snip.ss\" \"browser\")")
|
(define snip-class-name "(lib \"bullet-snip.rkt\" \"browser\")")
|
||||||
|
|
||||||
(define bullet-size
|
(define bullet-size
|
||||||
(make-parameter
|
(make-parameter
|
||||||
|
@ -90,5 +90,5 @@
|
||||||
(super-new)
|
(super-new)
|
||||||
(set-classname snip-class-name))))
|
(set-classname snip-class-name))))
|
||||||
|
|
||||||
(send (get-the-snip-class-list) add bullet-snip-class))
|
(send (get-the-snip-class-list) add bullet-snip-class)
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
(module entity-names mzscheme
|
#lang racket
|
||||||
(provide entity-name->integer)
|
(provide entity-name->integer)
|
||||||
|
|
||||||
(define table
|
(define table
|
||||||
#cs#hasheq((nbsp . 160)
|
#hasheq((nbsp . 160)
|
||||||
(iexcl . 161)
|
(iexcl . 161)
|
||||||
(cent . 162)
|
(cent . 162)
|
||||||
(pound . 163)
|
(pound . 163)
|
||||||
|
@ -256,6 +256,6 @@
|
||||||
(euro . 8364)))
|
(euro . 8364)))
|
||||||
|
|
||||||
(define (entity-name->integer s)
|
(define (entity-name->integer s)
|
||||||
(hash-table-get table s (lambda () #f))))
|
(hash-ref table s (lambda () #f)))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
#lang scheme/unit
|
#lang racket/unit
|
||||||
|
|
||||||
(require "sig.rkt"
|
(require "sig.rkt"
|
||||||
mred/mred-sig
|
mred/mred-sig
|
||||||
scheme/file
|
racket/file
|
||||||
mzlib/port
|
racket/port
|
||||||
net/url-sig
|
net/url-sig
|
||||||
(only-in html read-html-as-xml read-html-comments use-html-spec)
|
(only-in html read-html-as-xml read-html-comments use-html-spec)
|
||||||
(except-in xml read-comments)
|
(except-in xml read-comments)
|
||||||
mzlib/class
|
racket/class
|
||||||
"bullet.rkt"
|
"bullet.rkt"
|
||||||
"option-snip.rkt"
|
"option-snip.rkt"
|
||||||
"entity-names.rkt")
|
"entity-names.rkt")
|
||||||
|
@ -140,24 +140,24 @@
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;;
|
;;
|
||||||
;; Hardwired Scheme colorization; should come from a .css file
|
;; Hardwired Racket colorization; should come from a .css file
|
||||||
;;
|
;;
|
||||||
|
|
||||||
(define (make-scheme-color-delta col)
|
(define (make-racket-color-delta col)
|
||||||
(let ([d (make-object style-delta%)])
|
(let ([d (make-object style-delta%)])
|
||||||
(send d set-delta-foreground col)
|
(send d set-delta-foreground col)
|
||||||
d))
|
d))
|
||||||
|
|
||||||
(define scheme-code-delta (make-scheme-color-delta "brown"))
|
(define racket-code-delta (make-racket-color-delta "brown"))
|
||||||
(define scheme-code-delta/keyword
|
(define racket-code-delta/keyword
|
||||||
(let ([d (make-scheme-color-delta (make-object color% #x99 0 0))])
|
(let ([d (make-racket-color-delta (make-object color% #x99 0 0))])
|
||||||
(send d set-weight-on 'bold)
|
(send d set-weight-on 'bold)
|
||||||
d))
|
d))
|
||||||
(define scheme-code-delta/variable (make-scheme-color-delta "navy"))
|
(define racket-code-delta/variable (make-racket-color-delta "navy"))
|
||||||
(define scheme-code-delta/global (make-scheme-color-delta "purple"))
|
(define racket-code-delta/global (make-racket-color-delta "purple"))
|
||||||
(define scheme-code-delta/selfeval (make-scheme-color-delta "forest green"))
|
(define racket-code-delta/selfeval (make-racket-color-delta "forest green"))
|
||||||
(define scheme-code-delta/comment (make-scheme-color-delta "cornflower blue"))
|
(define racket-code-delta/comment (make-racket-color-delta "cornflower blue"))
|
||||||
(define navigation-delta (let ([d (make-scheme-color-delta "red")])
|
(define navigation-delta (let ([d (make-racket-color-delta "red")])
|
||||||
(send d set-style-on 'italic)
|
(send d set-style-on 'italic)
|
||||||
d))
|
d))
|
||||||
|
|
||||||
|
@ -166,13 +166,13 @@
|
||||||
(define (lookup-class-delta class)
|
(define (lookup-class-delta class)
|
||||||
(let ([class-path (cons class (current-style-class))])
|
(let ([class-path (cons class (current-style-class))])
|
||||||
(cond
|
(cond
|
||||||
[(sub-path? class-path '("scheme")) scheme-code-delta]
|
[(sub-path? class-path '("racket")) racket-code-delta]
|
||||||
[(sub-path? class-path '("keyword" "scheme")) scheme-code-delta/keyword]
|
[(sub-path? class-path '("keyword" "racket")) racket-code-delta/keyword]
|
||||||
[(sub-path? class-path '("variable" "scheme")) scheme-code-delta/variable]
|
[(sub-path? class-path '("variable" "racket")) racket-code-delta/variable]
|
||||||
[(sub-path? class-path '("global" "scheme")) scheme-code-delta/global]
|
[(sub-path? class-path '("global" "racket")) racket-code-delta/global]
|
||||||
[(or (sub-path? class-path '("selfeval" "scheme"))
|
[(or (sub-path? class-path '("selfeval" "racket"))
|
||||||
(sub-path? class-path '("schemeresponse"))) scheme-code-delta/selfeval]
|
(sub-path? class-path '("racketresponse"))) racket-code-delta/selfeval]
|
||||||
[(sub-path? class-path '("comment" "scheme")) scheme-code-delta/comment]
|
[(sub-path? class-path '("comment" "racket")) racket-code-delta/comment]
|
||||||
[(sub-path? class-path '("navigation")) navigation-delta]
|
[(sub-path? class-path '("navigation")) navigation-delta]
|
||||||
[else #f])))
|
[else #f])))
|
||||||
|
|
||||||
|
@ -209,7 +209,7 @@
|
||||||
|
|
||||||
(define (get-bitmap-from-url url)
|
(define (get-bitmap-from-url url)
|
||||||
(if (html-img-ok)
|
(if (html-img-ok)
|
||||||
(let ([tmp-filename (make-temporary-file "mredimg~a")])
|
(let ([tmp-filename (make-temporary-file "rktguiimg~a")])
|
||||||
(load-status #t "image" url)
|
(load-status #t "image" url)
|
||||||
(call-with-output-file* tmp-filename
|
(call-with-output-file* tmp-filename
|
||||||
(lambda (op)
|
(lambda (op)
|
||||||
|
@ -331,7 +331,7 @@
|
||||||
|
|
||||||
;; parse-coords : string -> (listof number)
|
;; parse-coords : string -> (listof number)
|
||||||
;; separates out a bunch of comma separated numbers in a string
|
;; separates out a bunch of comma separated numbers in a string
|
||||||
;; into a list of scheme numbers
|
;; into a list of racket numbers
|
||||||
(define (parse-coords str)
|
(define (parse-coords str)
|
||||||
(let loop ([str str])
|
(let loop ([str str])
|
||||||
(cond
|
(cond
|
||||||
|
@ -369,13 +369,13 @@
|
||||||
(let ([a (assq name (cadr e))])
|
(let ([a (assq name (cadr e))])
|
||||||
(and a (cadr a))))
|
(and a (cadr a))))
|
||||||
|
|
||||||
(define get-mzscheme-arg
|
(define get-racket-arg
|
||||||
(let ([get-mz (make-get-field "mzscheme")])
|
(let ([get-rkt (make-get-field "racket")])
|
||||||
(lambda (str)
|
(lambda (str)
|
||||||
(let ([v (get-mz str)])
|
(let ([v (get-rkt str)])
|
||||||
(and v (filter-mzscheme v))))))
|
(and v (filter-racket v))))))
|
||||||
|
|
||||||
(define filter-mzscheme
|
(define filter-racket
|
||||||
(lambda (v)
|
(lambda (v)
|
||||||
(regexp-replace* "[|]" v "\"")))
|
(regexp-replace* "[|]" v "\"")))
|
||||||
|
|
||||||
|
@ -475,12 +475,12 @@
|
||||||
[(symbol? c) (values c #t)]
|
[(symbol? c) (values c #t)]
|
||||||
[(number? c) (values c #t)]
|
[(number? c) (values c #t)]
|
||||||
[(comment? c)
|
[(comment? c)
|
||||||
(let ([code (get-mzscheme-arg (comment-text c))])
|
(let ([code (get-racket-arg (comment-text c))])
|
||||||
(if code
|
(if code
|
||||||
(let ([s (with-handlers ([exn:fail?
|
(let ([s (with-handlers ([exn:fail?
|
||||||
(lambda (exn)
|
(lambda (exn)
|
||||||
(format
|
(format
|
||||||
"<font color=\"red\">Error during <!-- MZSCHEME=... -->: <i>~a</i></font>"
|
"<font color=\"red\">Error during <!-- RACKET=... -->: <i>~a</i></font>"
|
||||||
(if (exn? exn)
|
(if (exn? exn)
|
||||||
(exn-message exn)
|
(exn-message exn)
|
||||||
(format "~s" exn))))])
|
(format "~s" exn))))])
|
||||||
|
@ -646,9 +646,9 @@
|
||||||
(unescape str)))]
|
(unescape str)))]
|
||||||
[else #f])]
|
[else #f])]
|
||||||
[label (get-field s 'name)]
|
[label (get-field s 'name)]
|
||||||
[scheme (let ([v (get-field s 'mzscheme)])
|
[racket (let ([v (get-field s 'racket)])
|
||||||
(and v (filter-mzscheme v)))])
|
(and v (filter-racket v)))])
|
||||||
(values url-string label scheme))))]
|
(values url-string label racket))))]
|
||||||
|
|
||||||
[parse-font
|
[parse-font
|
||||||
(let ([face-regexp (regexp "([^,]*), *(.*)")])
|
(let ([face-regexp (regexp "([^,]*), *(.*)")])
|
||||||
|
@ -908,7 +908,7 @@
|
||||||
(delete pos (current-pos)))
|
(delete pos (current-pos)))
|
||||||
(values void forced-lines)]
|
(values void forced-lines)]
|
||||||
[(a)
|
[(a)
|
||||||
(let-values ([(url-string label scheme) (parse-href e)])
|
(let-values ([(url-string label racket) (parse-href e)])
|
||||||
(let* ([style (get-field e 'style)]
|
(let* ([style (get-field e 'style)]
|
||||||
[pos (current-pos)])
|
[pos (current-pos)])
|
||||||
(let-values ([(r rfl) (rest)])
|
(let-values ([(r rfl) (rest)])
|
||||||
|
@ -929,8 +929,8 @@
|
||||||
[label
|
[label
|
||||||
(send a-text add-tag label pos)
|
(send a-text add-tag label pos)
|
||||||
(values r rfl)]
|
(values r rfl)]
|
||||||
[scheme
|
[racket
|
||||||
(send a-text add-scheme-callback pos end-pos scheme)
|
(send a-text add-racket-callback pos end-pos racket)
|
||||||
(values
|
(values
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(when (or (not style)
|
(when (or (not style)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#|
|
#|
|
||||||
A test case:
|
A test case:
|
||||||
|
|
||||||
(module tmp mzscheme
|
#lang racket
|
||||||
(require mzlib/class mred browser framework)
|
(require racket/gui browser framework)
|
||||||
|
|
||||||
(define f%
|
(define f%
|
||||||
(frame:status-line-mixin
|
(frame:status-line-mixin
|
||||||
|
@ -22,15 +22,16 @@ A test case:
|
||||||
;; The starting URL:
|
;; The starting URL:
|
||||||
"http://www.htdp.org/";
|
"http://www.htdp.org/";
|
||||||
;; #f means not a relative URL:
|
;; #f means not a relative URL:
|
||||||
#f))
|
#f)
|
||||||
|#
|
|#
|
||||||
|
|
||||||
#lang scheme/unit
|
#lang racket/unit
|
||||||
|
|
||||||
(require mzlib/class
|
(require racket/class
|
||||||
|
(only-in racket/list last-pair)
|
||||||
"sig.rkt"
|
"sig.rkt"
|
||||||
scheme/path
|
racket/path
|
||||||
scheme/file
|
racket/file
|
||||||
net/url-sig
|
net/url-sig
|
||||||
net/url-structs
|
net/url-structs
|
||||||
net/head
|
net/head
|
||||||
|
@ -39,7 +40,6 @@ A test case:
|
||||||
string-constants
|
string-constants
|
||||||
setup/plt-installer-sig)
|
setup/plt-installer-sig)
|
||||||
|
|
||||||
|
|
||||||
(import html^
|
(import html^
|
||||||
mred^
|
mred^
|
||||||
setup:plt-installer^
|
setup:plt-installer^
|
||||||
|
@ -47,20 +47,15 @@ A test case:
|
||||||
(export hyper^)
|
(export hyper^)
|
||||||
(init-depend mred^)
|
(init-depend mred^)
|
||||||
|
|
||||||
(define (last-pair l)
|
(struct exn:file-saved-instead exn (pathname))
|
||||||
(if (null? (cdr l))
|
(struct exn:cancelled exn ())
|
||||||
l
|
(struct exn:tcp-problem exn ())
|
||||||
(last-pair (cdr l))))
|
|
||||||
|
|
||||||
(define-struct (exn:file-saved-instead exn) (pathname))
|
|
||||||
(define-struct (exn:cancelled exn) ())
|
|
||||||
(define-struct (exn:tcp-problem exn) ())
|
|
||||||
|
|
||||||
(define history-limit 20)
|
(define history-limit 20)
|
||||||
|
|
||||||
(define-struct hyperlink (anchor-start anchor-end url-string))
|
(struct hyperlink (anchor-start anchor-end url-string))
|
||||||
|
|
||||||
(define-struct hypertag (name position))
|
(struct hypertag (name position))
|
||||||
|
|
||||||
(define (same-page-url? a b)
|
(define (same-page-url? a b)
|
||||||
(or (eq? a b)
|
(or (eq? a b)
|
||||||
|
@ -104,7 +99,7 @@ A test case:
|
||||||
(equal? "file" (url-scheme url)))
|
(equal? "file" (url-scheme url)))
|
||||||
(with-handlers ([exn:fail:filesystem? (lambda (x) #f)])
|
(with-handlers ([exn:fail:filesystem? (lambda (x) #f)])
|
||||||
(path-below?
|
(path-below?
|
||||||
(normal-case-path (normalize-path (build-path (collection-path "mzlib")
|
(normal-case-path (normalize-path (build-path (collection-path "racket")
|
||||||
'up
|
'up
|
||||||
'up)))
|
'up)))
|
||||||
(normal-case-path (normalize-path (apply build-path
|
(normal-case-path (normalize-path (apply build-path
|
||||||
|
@ -115,7 +110,7 @@ A test case:
|
||||||
(define title #f)
|
(define title #f)
|
||||||
(define htmling? #f)
|
(define htmling? #f)
|
||||||
(define redirection #f)
|
(define redirection #f)
|
||||||
(define hypertags-list (list (make-hypertag "top" 0)))
|
(define hypertags-list (list (hypertag "top" 0)))
|
||||||
(define hyper-delta (make-object style-delta% 'change-underline #t))
|
(define hyper-delta (make-object style-delta% 'change-underline #t))
|
||||||
(let ([mult (send hyper-delta get-foreground-mult)]
|
(let ([mult (send hyper-delta get-foreground-mult)]
|
||||||
[add (send hyper-delta get-foreground-add)])
|
[add (send hyper-delta get-foreground-add)])
|
||||||
|
@ -162,7 +157,7 @@ A test case:
|
||||||
(when (string=? name (hypertag-name tag))
|
(when (string=? name (hypertag-name tag))
|
||||||
(remove-tag name)))
|
(remove-tag name)))
|
||||||
hypertags-list)
|
hypertags-list)
|
||||||
(let ([new-tag (make-hypertag name pos)])
|
(let ([new-tag (hypertag name pos)])
|
||||||
(set! hypertags-list
|
(set! hypertags-list
|
||||||
(let insert-loop ([tags-left hypertags-list])
|
(let insert-loop ([tags-left hypertags-list])
|
||||||
(cond [(null? tags-left)(cons new-tag '())]
|
(cond [(null? tags-left)(cons new-tag '())]
|
||||||
|
@ -184,30 +179,30 @@ A test case:
|
||||||
(filter (lambda (x) (not (string=? name (hypertag-name x))))
|
(filter (lambda (x) (not (string=? name (hypertag-name x))))
|
||||||
hypertags-list)))
|
hypertags-list)))
|
||||||
(define/public (add-link start end url-string)
|
(define/public (add-link start end url-string)
|
||||||
(let* ([new-link (make-hyperlink start end url-string)])
|
(let* ([new-link (hyperlink start end url-string)])
|
||||||
(set-clickback start end
|
(set-clickback start end
|
||||||
(lambda (x y z)
|
(lambda (x y z)
|
||||||
(post-url url-string)))))
|
(post-url url-string)))))
|
||||||
|
|
||||||
;; remember the directory when the callback is added (during parsing)
|
;; remember the directory when the callback is added (during parsing)
|
||||||
;; and restore it during the evaluation of the callback.
|
;; and restore it during the evaluation of the callback.
|
||||||
(define/public (add-scheme-callback start end scheme-string)
|
(define/public (add-racket-callback start end racket-string)
|
||||||
(let ([dir (current-load-relative-directory)])
|
(let ([dir (current-load-relative-directory)])
|
||||||
(set-clickback
|
(set-clickback
|
||||||
start end
|
start end
|
||||||
(lambda (edit start end)
|
(lambda (edit start end)
|
||||||
(if (url-allows-evaling? url)
|
(if (url-allows-evaling? url)
|
||||||
(parameterize ([current-load-relative-directory dir])
|
(parameterize ([current-load-relative-directory dir])
|
||||||
(eval-scheme-string scheme-string))
|
(eval-racket-string racket-string))
|
||||||
(message-box (string-constant help-desk)
|
(message-box (string-constant help-desk)
|
||||||
"<A MZSCHEME= ...> disabled"))))))
|
"<A RACKET= ...> disabled"))))))
|
||||||
(define/public (add-thunk-callback start end thunk)
|
(define/public (add-thunk-callback start end thunk)
|
||||||
(set-clickback
|
(set-clickback
|
||||||
start end
|
start end
|
||||||
(lambda (edit start end)
|
(lambda (edit start end)
|
||||||
(thunk))))
|
(thunk))))
|
||||||
|
|
||||||
(define/public (eval-scheme-string s)
|
(define/public (eval-racket-string s)
|
||||||
(let ([v
|
(let ([v
|
||||||
(dynamic-wind
|
(dynamic-wind
|
||||||
begin-busy-cursor
|
begin-busy-cursor
|
||||||
|
@ -388,13 +383,13 @@ A test case:
|
||||||
(send d center)
|
(send d center)
|
||||||
(send d show #t)
|
(send d show #t)
|
||||||
(unless (or d? i?)
|
(unless (or d? i?)
|
||||||
(raise (make-exn:cancelled
|
(raise (exn:cancelled
|
||||||
"Package Cancelled"
|
"Package Cancelled"
|
||||||
(current-continuation-marks))))
|
(current-continuation-marks))))
|
||||||
i?))]
|
i?))]
|
||||||
[tmp-plt-filename
|
[tmp-plt-filename
|
||||||
(if install?
|
(if install?
|
||||||
(make-temporary-file "tmp~a.plt")
|
(make-temporary-file "tmp~a.rkt")
|
||||||
(put-file
|
(put-file
|
||||||
(if size
|
(if size
|
||||||
(format
|
(format
|
||||||
|
@ -449,7 +444,7 @@ A test case:
|
||||||
(queue-callback (lambda () (semaphore-post wait-to-start)))
|
(queue-callback (lambda () (semaphore-post wait-to-start)))
|
||||||
(send d show #t)
|
(send d show #t)
|
||||||
(when exn
|
(when exn
|
||||||
(raise (make-exn:tcp-problem (exn-message exn) (current-continuation-marks)))))
|
(raise (exn:tcp-problem (exn-message exn) (current-continuation-marks)))))
|
||||||
(let ([sema (make-semaphore 0)])
|
(let ([sema (make-semaphore 0)])
|
||||||
(when (and tmp-plt-filename install?)
|
(when (and tmp-plt-filename install?)
|
||||||
(run-installer tmp-plt-filename
|
(run-installer tmp-plt-filename
|
||||||
|
@ -458,13 +453,13 @@ A test case:
|
||||||
(yield sema))))
|
(yield sema))))
|
||||||
(raise
|
(raise
|
||||||
(if tmp-plt-filename
|
(if tmp-plt-filename
|
||||||
(make-exn:file-saved-instead
|
(exn:file-saved-instead
|
||||||
(if install?
|
(if install?
|
||||||
(string-constant package-was-installed)
|
(string-constant package-was-installed)
|
||||||
(string-constant download-was-saved))
|
(string-constant download-was-saved))
|
||||||
(current-continuation-marks)
|
(current-continuation-marks)
|
||||||
tmp-plt-filename)
|
tmp-plt-filename)
|
||||||
(make-exn:cancelled "The download was cancelled."
|
(exn:cancelled "The download was cancelled."
|
||||||
(current-continuation-marks)))))]
|
(current-continuation-marks)))))]
|
||||||
[(or (and (url? url)
|
[(or (and (url? url)
|
||||||
(not (null? (url-path url)))
|
(not (null? (url-path url)))
|
||||||
|
@ -576,9 +571,9 @@ A test case:
|
||||||
;; build-html-error-message : exn -> string[html]
|
;; build-html-error-message : exn -> string[html]
|
||||||
(define ((build-html-error-message str) exn)
|
(define ((build-html-error-message str) exn)
|
||||||
(string-append
|
(string-append
|
||||||
"<html><head><title>Error Evaluating Scheme</title></head>"
|
"<html><head><title>Error Evaluating Racket</title></head>"
|
||||||
"<body>"
|
"<body>"
|
||||||
"<h2>Error Evaluating Scheme Code</h2>"
|
"<h2>Error Evaluating Racket Code</h2>"
|
||||||
(format "<pre>\n~a\n</pre>" str)
|
(format "<pre>\n~a\n</pre>" str)
|
||||||
"<p><p>"
|
"<p><p>"
|
||||||
(format "<font color=\"red\">~a</font>"
|
(format "<font color=\"red\">~a</font>"
|
||||||
|
@ -743,7 +738,7 @@ A test case:
|
||||||
(set-page (list e (or tag-pos 0) (send e last-position)) #t)
|
(set-page (list e (or tag-pos 0) (send e last-position)) #t)
|
||||||
(when tag-pos (send e set-position tag-pos)))]
|
(when tag-pos (send e set-position tag-pos)))]
|
||||||
[(exn? result)
|
[(exn? result)
|
||||||
(message-box (string-constant drscheme)
|
(message-box (string-constant drracket)
|
||||||
(exn-message result)
|
(exn-message result)
|
||||||
tlw)]
|
tlw)]
|
||||||
[else (void)]))))))
|
[else (void)]))))))
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
(module option-snip mzscheme
|
#lang racket
|
||||||
(require mred
|
(require racket/gui)
|
||||||
mzlib/class
|
|
||||||
mzlib/string)
|
|
||||||
|
|
||||||
(provide option-snip%
|
(provide option-snip%
|
||||||
checkbox-snip%)
|
checkbox-snip%)
|
||||||
|
@ -198,4 +196,4 @@
|
||||||
|
|
||||||
(super-instantiate ())
|
(super-instantiate ())
|
||||||
(set-flags (cons 'handles-events (get-flags)))
|
(set-flags (cons 'handles-events (get-flags)))
|
||||||
(set-count 1))))
|
(set-count 1)))
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
(module sig scheme/base
|
#lang racket
|
||||||
(require scheme/unit)
|
(require racket/unit)
|
||||||
|
|
||||||
(provide relative-btree^
|
(provide relative-btree^
|
||||||
bullet-export^
|
bullet-export^
|
||||||
|
@ -21,8 +21,8 @@
|
||||||
|
|
||||||
(define-signature hyper^
|
(define-signature hyper^
|
||||||
(open-url
|
(open-url
|
||||||
(struct exn:file-saved-instead (pathname))
|
(struct exn:file-saved-instead (pathname) #:omit-constructor)
|
||||||
(struct exn:cancelled ())
|
(struct exn:cancelled () #:omit-constructor)
|
||||||
|
|
||||||
hyper-text<%>
|
hyper-text<%>
|
||||||
hyper-text-mixin
|
hyper-text-mixin
|
||||||
|
@ -54,4 +54,4 @@
|
||||||
btree-shift!
|
btree-shift!
|
||||||
|
|
||||||
btree-for-each
|
btree-for-each
|
||||||
btree-map)))
|
btree-map))
|
||||||
|
|
|
@ -1,15 +1,16 @@
|
||||||
(module tool mzscheme
|
#lang racket
|
||||||
(require browser/external
|
(require (only-in "external.rkt" install-help-browser-preference-panel)
|
||||||
mzlib/unit
|
racket/unit
|
||||||
drscheme/tool)
|
drracket/tool)
|
||||||
(provide tool@)
|
(provide tool@)
|
||||||
|
|
||||||
;; to add a preference pannel to drscheme that sets the browser preference
|
;; to add a preference pannel to drracket that sets the browser preference
|
||||||
(define tool@
|
(define tool@
|
||||||
(unit
|
(unit
|
||||||
(import drscheme:tool^)
|
(import drracket:tool^)
|
||||||
(export drscheme:tool-exports^)
|
(export drracket:tool-exports^)
|
||||||
(define phase1 void)
|
|
||||||
(define phase2 void)
|
|
||||||
|
|
||||||
(install-help-browser-preference-panel))))
|
(define (phase1) (void))
|
||||||
|
(define (phase2) (void))
|
||||||
|
|
||||||
|
(install-help-browser-preference-panel)))
|
|
@ -106,6 +106,7 @@ please adhere to these guidelines:
|
||||||
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
||||||
(plt "PLT")
|
(plt "PLT")
|
||||||
(drscheme "DrRacket")
|
(drscheme "DrRacket")
|
||||||
|
(drracket "DrRacket")
|
||||||
(ok "Ok")
|
(ok "Ok")
|
||||||
(cancel "Fortryd")
|
(cancel "Fortryd")
|
||||||
(abort "Afbryd")
|
(abort "Afbryd")
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
||||||
(plt "PLT")
|
(plt "PLT")
|
||||||
(drscheme "DrRacket")
|
(drscheme "DrRacket")
|
||||||
|
(drracket "DrRacket")
|
||||||
(ok "OK")
|
(ok "OK")
|
||||||
(cancel "Annuleren")
|
(cancel "Annuleren")
|
||||||
(untitled "Naamloos")
|
(untitled "Naamloos")
|
||||||
|
|
|
@ -106,6 +106,7 @@ please adhere to these guidelines:
|
||||||
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
||||||
(plt "PLT")
|
(plt "PLT")
|
||||||
(drscheme "DrRacket")
|
(drscheme "DrRacket")
|
||||||
|
(drracket "DrRacket")
|
||||||
(ok "OK")
|
(ok "OK")
|
||||||
(cancel "Cancel")
|
(cancel "Cancel")
|
||||||
(abort "Abort")
|
(abort "Abort")
|
||||||
|
|
|
@ -106,6 +106,7 @@
|
||||||
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
||||||
(plt "PLT")
|
(plt "PLT")
|
||||||
(drscheme "DrRacket")
|
(drscheme "DrRacket")
|
||||||
|
(drracket "DrRacket")
|
||||||
(ok "OK")
|
(ok "OK")
|
||||||
(cancel "Annuler")
|
(cancel "Annuler")
|
||||||
(abort "Abandonner")
|
(abort "Abandonner")
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
||||||
(plt "PLT")
|
(plt "PLT")
|
||||||
(drscheme "DrRacket")
|
(drscheme "DrRacket")
|
||||||
|
(drracket "DrRacket")
|
||||||
(ok "OK")
|
(ok "OK")
|
||||||
;; We can't use "Abbrechen" here because that's much closer in
|
;; We can't use "Abbrechen" here because that's much closer in
|
||||||
;; meaning to "abort", and it appears in dialogs saying "Quit?" "OK"
|
;; meaning to "abort", and it appears in dialogs saying "Quit?" "OK"
|
||||||
|
|
|
@ -106,6 +106,7 @@ please adhere to these guidelines:
|
||||||
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
||||||
(plt "PLT")
|
(plt "PLT")
|
||||||
(drscheme "DrRacket")
|
(drscheme "DrRacket")
|
||||||
|
(drracket "DrRacket")
|
||||||
(ok "OK")
|
(ok "OK")
|
||||||
(cancel "キャンセル")
|
(cancel "キャンセル")
|
||||||
(abort "中止")
|
(abort "中止")
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
||||||
(plt "PLT")
|
(plt "PLT")
|
||||||
(drscheme "DrRacket")
|
(drscheme "DrRacket")
|
||||||
|
(drracket "DrRacket")
|
||||||
(ok "확인")
|
(ok "확인")
|
||||||
(cancel "취소")
|
(cancel "취소")
|
||||||
(abort "중단")
|
(abort "중단")
|
||||||
|
|
|
@ -106,6 +106,7 @@ please adhere to these guidelines:
|
||||||
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
||||||
(plt "PLT")
|
(plt "PLT")
|
||||||
(drscheme "DrRacket")
|
(drscheme "DrRacket")
|
||||||
|
(drracket "DrRacket")
|
||||||
(ok "OK")
|
(ok "OK")
|
||||||
(cancel "Cancelar")
|
(cancel "Cancelar")
|
||||||
(abort "Abortar")
|
(abort "Abortar")
|
||||||
|
|
|
@ -106,6 +106,7 @@ please adhere to these guidelines:
|
||||||
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
||||||
(plt "PLT")
|
(plt "PLT")
|
||||||
(drscheme "DrRacket")
|
(drscheme "DrRacket")
|
||||||
|
(drracket "DrRacket")
|
||||||
(ok "OK")
|
(ok "OK")
|
||||||
(cancel "Отмена")
|
(cancel "Отмена")
|
||||||
(abort "Отмена")
|
(abort "Отмена")
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
||||||
(plt "PLT")
|
(plt "PLT")
|
||||||
(drscheme "DrRacket")
|
(drscheme "DrRacket")
|
||||||
|
(drracket "DrRacket")
|
||||||
(ok "确定")
|
(ok "确定")
|
||||||
(cancel "取消")
|
(cancel "取消")
|
||||||
(abort "中止")
|
(abort "中止")
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
||||||
(plt "PLT")
|
(plt "PLT")
|
||||||
(drscheme "DrRacket")
|
(drscheme "DrRacket")
|
||||||
|
(drracket "DrRacket")
|
||||||
(ok "OK")
|
(ok "OK")
|
||||||
(cancel "Cancelar")
|
(cancel "Cancelar")
|
||||||
(abort "Abortar")
|
(abort "Abortar")
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
||||||
(plt "PLT")
|
(plt "PLT")
|
||||||
(drscheme "DrRacket")
|
(drscheme "DrRacket")
|
||||||
|
(drracket "DrRacket")
|
||||||
|
|
||||||
(ok "確定")
|
(ok "確定")
|
||||||
(cancel "取消")
|
(cancel "取消")
|
||||||
(abort "中止")
|
(abort "中止")
|
||||||
|
|
|
@ -106,6 +106,7 @@ please adhere to these guidelines:
|
||||||
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
;;; general purpose (DrRacket is hereby a word in every language, by decree of Robby :)
|
||||||
(plt "PLT")
|
(plt "PLT")
|
||||||
(drscheme "DrRacket")
|
(drscheme "DrRacket")
|
||||||
|
(drracket "DrRacket")
|
||||||
(ok "OK")
|
(ok "OK")
|
||||||
(cancel "Скасувати")
|
(cancel "Скасувати")
|
||||||
(abort "Скасувати")
|
(abort "Скасувати")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user