A lot of "MrEd" -> "GRacket"s.
This commit is contained in:
parent
2ecdc0f33a
commit
7f6efdc8be
|
@ -6,7 +6,7 @@
|
|||
;; splines. This allows the usual O(log(n)) operations, plus a
|
||||
;; O(log(n)) shift operation.
|
||||
|
||||
;; (This is the same data structure as used for lines by MrEd's text%
|
||||
;; (This is the same data structure as used for lines by GRacket's text%
|
||||
;; class, but that one is implemented in C++.)
|
||||
(import)
|
||||
(export (rename relative-btree^
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
;; Create directories for libs, collects, and extensions:
|
||||
(let-values ([(lib-dir collects-dir relative-collects-dir exts-dir relative-exts-dir)
|
||||
(if single-mac-app?
|
||||
;; Special case: single Mac OS X MrEd app:
|
||||
;; Special case: single Mac OS X GRacket app:
|
||||
(let-values ([(base name dir?)
|
||||
(split-path (car binaries))])
|
||||
(values
|
||||
|
@ -294,7 +294,7 @@
|
|||
[(macosx)
|
||||
(if (and (= 1 (length types))
|
||||
(memq (car types) '(mredcgc mred3m)))
|
||||
;; Special case for single MrEd app:
|
||||
;; Special case for single GRacket app:
|
||||
(update-framework-path "@executable_path/../Frameworks/"
|
||||
(car binaries)
|
||||
#t)
|
||||
|
|
|
@ -1065,7 +1065,7 @@
|
|||
(link-exists? dest))
|
||||
;; Delete-file isn't enough if the target
|
||||
;; is supposed to be a directory. But
|
||||
;; currently, that happens only for MrEd
|
||||
;; currently, that happens only for GRacket
|
||||
;; on Mac OS X, which is handles above.
|
||||
(delete-file dest))
|
||||
(copy-file exe dest)
|
||||
|
@ -1271,7 +1271,7 @@
|
|||
(when m
|
||||
(set-subsystem dest-exe (cdr m)))))])))))))))
|
||||
|
||||
;; For Mac OS X MrEd, the actual executable is deep inside the
|
||||
;; For Mac OS X GRacket, the actual executable is deep inside the
|
||||
;; nominal executable bundle
|
||||
(define (mac-mred-collects-path-adjust p)
|
||||
(cond
|
||||
|
|
|
@ -622,7 +622,7 @@
|
|||
(lambda () (close-input-port p)))))
|
||||
|
||||
;; The following is useful for bitmap->icon,
|
||||
;; but it uses MrEd, and this module is used by
|
||||
;; but it uses GRacket, and this module is used by
|
||||
;; Setup PLT. Probably this code should just be
|
||||
;; moved somewhere else.
|
||||
#;
|
||||
|
|
|
@ -1734,7 +1734,7 @@
|
|||
|
||||
(define (skip-static-line? e)
|
||||
;; We want to skip the really-big static declaration for
|
||||
;; the inlined bytecodes in MrEd
|
||||
;; the inlined bytecodes in GRacket
|
||||
(let loop ([e e][l '(static unsigned char expr)])
|
||||
(cond
|
||||
[(null? l) #t]
|
||||
|
|
|
@ -1288,7 +1288,7 @@ all of the names in the tools library, for use defining keybindings
|
|||
string?
|
||||
. -> . (or/c false/c path?))
|
||||
(parent program-filename mode mred? title)
|
||||
@{Calls the MrEd primitive
|
||||
@{Calls the GRacket primitive
|
||||
@racket[put-file]
|
||||
with arguments appropriate for creating an executable
|
||||
from the file @racket[program-filename].
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
(export framework:application^)
|
||||
|
||||
(define current-app-name (make-parameter
|
||||
"MrEd"
|
||||
"GRacket"
|
||||
(λ (x)
|
||||
(unless (string? x)
|
||||
(error 'current-app-name
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; graphics.ss
|
||||
; Simple graphics routines for MrEd
|
||||
; Simple graphics routines for GRacket
|
||||
; Originally written by Johnathan Franklin
|
||||
;
|
||||
; modified by Gregory Cooper to support FrTime
|
||||
|
|
|
@ -287,11 +287,11 @@ of the resulting class that gets the result of applying
|
|||
FtA provides event-is-val, split-mouse-events/type, and
|
||||
split-key-events/type for use as initialization arguments.
|
||||
event-is-val can be used for [stream-name]-event-processor
|
||||
when the event should just be the value of the first
|
||||
when the event should just be the value of the first
|
||||
argument of the callback. split-*-events/type sets up an
|
||||
appropriate split (see FrTime docs for split information,
|
||||
MrEd docs for key-event codes and mouse-event types).
|
||||
|
||||
GRacket docs for key-event codes and mouse-event types).
|
||||
|
||||
|
||||
MIXINS
|
||||
------
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
(only-in frtime/lang-core
|
||||
any-nested-reactivity? raise-reactivity)
|
||||
|
||||
;; MrEd require
|
||||
;; GRacket require
|
||||
(except-in mred send-event))
|
||||
|
||||
(define drs-eventspace #f)
|
||||
|
|
|
@ -31,7 +31,7 @@ event-is-val can be used for [stream-name]-event-processor
|
|||
when the event should just be the value of the first
|
||||
argument of the callback. split-*-events/type sets up an
|
||||
appropriate split (see FrTime docs for split information,
|
||||
MrEd docs for key-event codes and mouse-event types) over
|
||||
GRacket docs for key-event codes and mouse-event types) over
|
||||
the type of event occurence.
|
||||
|
||||
|
||||
|
|
|
@ -155,7 +155,7 @@ included in the basic FrTime language.
|
|||
(require (lifted:nonstrict module-spec proc-name ...) ...)
|
||||
]
|
||||
|
||||
@section[#:tag "fred"]{Fred: Functional Reactive Wrapper around MrEd}
|
||||
@section[#:tag "fred"]{Fred: Functional Reactive Wrapper around GRacket}
|
||||
|
||||
@defmodule[frtime/gui/fred]
|
||||
|
||||
|
|
|
@ -276,7 +276,7 @@
|
|||
[(#\L) (push-left! (sub1 p))]
|
||||
[(#\R) (push-right! (sub1 p))])))))))]
|
||||
[run-player
|
||||
;; A wrapper for monitoring the program player in a MrEd thread.
|
||||
;; A wrapper for monitoring the program player in a GRacket thread.
|
||||
;; Also handle the possibility that something goes wrong.
|
||||
(lambda (robot who)
|
||||
(send status set-label (format "~a: running ~a"
|
||||
|
@ -613,7 +613,7 @@
|
|||
(send canvas focus)
|
||||
|
||||
; Make a text window for showing the board history to the right.
|
||||
; Uses the built-in text editor in MrEd, adding a show-moves
|
||||
; Uses the built-in text editor in GRacket, adding a show-moves
|
||||
; method to refresh the window after a move or rewind.
|
||||
(make-object message% "Moves" history-panel)
|
||||
(define history-canvas (make-object editor-canvas% history-panel #f '(no-hscroll)))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; graphics.ss
|
||||
; Simple graphics routines for MrEd
|
||||
; Simple graphics routines for GRacket
|
||||
; Originally written by Johnathan Franklin
|
||||
|
||||
(module graphics-posn-less-unit mzscheme
|
||||
|
|
|
@ -14,7 +14,7 @@ languages for other modules (i.e., as the initial import):
|
|||
functions of Beginning Student.
|
||||
|
||||
* _plt-pretty-big.ss_ - provides plt-pretty-big-text.ss
|
||||
plus the MrEd classes. This corresponds to the
|
||||
plus the GRacket classes. This corresponds to the
|
||||
_Pretty Big Scheme_ language in DrScheme.
|
||||
|
||||
* _htdp-beginner.ss_ - provides Beginning Student
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
(define op (current-output-port))
|
||||
|
||||
;; Flag to indicate whether we've tried to load
|
||||
;; the MrEd-using image functions
|
||||
;; the GRacket-using image functions
|
||||
(define tried? #f)
|
||||
|
||||
;; This macro is used once to export all functions
|
||||
|
@ -41,6 +41,6 @@
|
|||
;; Each re-export is the name, formals for the argument,
|
||||
;; and if the first argument isn't required to be an image,
|
||||
;; a function to apply when the real version is unavailable
|
||||
;; (i.e., because there's no MrEd)
|
||||
;; (i.e., because there's no GRacket)
|
||||
(re-export (image? (x) (lambda (x) #f))
|
||||
(image=? (a b))))
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
(define variants (available-mred-variants))
|
||||
(for ([v variants] #:when (memq v '(3m cgc)))
|
||||
(parameterize ([current-launcher-variant v])
|
||||
(create-embedding-executable
|
||||
(create-embedding-executable
|
||||
(mred-program-launcher-path "MrEd")
|
||||
#:cmdline '("-I" "scheme/gui/init")
|
||||
#:variant v
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
(provide (protect group-box%))
|
||||
|
||||
;; Not exported from MrEd:
|
||||
;; Not exported from GRacket:
|
||||
(define group-box%
|
||||
(class100 basic-control% (label parent [style null] [font #f])
|
||||
(override
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
(provide (protect tab-group%))
|
||||
|
||||
;; Not exported from MrEd:
|
||||
;; Not exported from GRacket:
|
||||
(define tab-group%
|
||||
(class100 basic-control% (label choices parent callback [style null] [font #f])
|
||||
(override
|
||||
|
|
|
@ -82,7 +82,7 @@
|
|||
[on-drop-file (lambda (f) (evaluate (format "(load ~s)" (path->string f))))])
|
||||
(sequence
|
||||
(apply super-init args) (accept-drop-files #t)))
|
||||
"MrEd REPL" #f 500 400))
|
||||
"GRacket REPL" #f 500 400))
|
||||
(define repl-buffer (make-object esq:text%))
|
||||
(define repl-display-canvas (new editor-canvas% [parent frame] [style '(no-border auto-hscroll resize-corner)]))
|
||||
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
((gui-dynamic-require 'send-event) who class msg data args)
|
||||
(raise
|
||||
(make-exn:fail:unsupported
|
||||
"send-event: only supported in MrEd"
|
||||
"send-event: only supported in GRacket"
|
||||
(current-continuation-marks))))))
|
||||
|
||||
|
|
|
@ -90,7 +90,7 @@
|
|||
specific to the Tree class. The second part is more generic,
|
||||
providing a fairly simple objscheme_ interface to class-specific
|
||||
glue, such the Tree glue. The second part can be shared for any
|
||||
number of C++ classes, and it is similar to code used by MrEd.
|
||||
number of C++ classes, and it is similar to code used by GRacket.
|
||||
*/
|
||||
|
||||
#include "escheme.h"
|
||||
|
@ -507,7 +507,7 @@ Scheme_Object *scheme_module_name()
|
|||
/**********************************************************/
|
||||
|
||||
/*
|
||||
(This code is mostly the same as code used by MrEd, and duplicating
|
||||
(This code is mostly the same as code used by GRacket, and duplicating
|
||||
it is certainly a bad idea in principle, but putting the code in a
|
||||
shareable place seems like more work than is worthwhile for now.)
|
||||
|
||||
|
|
|
@ -58,6 +58,6 @@
|
|||
queue-for-update))
|
||||
|
||||
;; style-map
|
||||
;; Maps symbolic style names ('bold, 'red) to MrEd styles.
|
||||
;; Maps symbolic style names ('bold, 'red) to GRacket styles.
|
||||
(define-interface style-map<%> ()
|
||||
(get-style))
|
||||
|
|
|
@ -28,7 +28,7 @@ buttons, setting check-boxes and choices, sending keystrokes,
|
|||
selecting menu items and clicking the mouse. Many functions
|
||||
that are also useful in application testing, such as
|
||||
traversing a tree of panels, getting the text from a canvas,
|
||||
determining if a window is shown, and so on, exist in MrEd.
|
||||
determining if a window is shown, and so on, exist in GRacket.
|
||||
|
||||
@section[#:tag "test:actions-completeness"]{Actions and completeness}
|
||||
|
||||
|
|
|
@ -245,7 +245,7 @@ information@|details|, even if the editor currently has delayed refreshing (see
|
|||
(bytes->string/latin-1 name))))
|
||||
|
||||
(define (res-sym s)
|
||||
(string->symbol (string-append "MrEd:" s)))
|
||||
(string->symbol (string-append "GRacket:" s)))
|
||||
|
||||
(define (Resource s)
|
||||
@elem{@to-element[`(quote ,(res-sym s))]
|
||||
|
|
|
@ -320,7 +320,7 @@ To embed Racket CGC in a program, follow these steps:
|
|||
@filepath{libmzgc@italic{x}.dll} must be moved to a location in the
|
||||
standard DLL search path, or your embedding application must
|
||||
``delayload'' link the DLLs and explicitly load them before
|
||||
use. (@filepath{Racket.exe} and @filepath{MrEd.exe} use the latter
|
||||
use. (@filepath{Racket.exe} and @filepath{GRacket.exe} use the latter
|
||||
strategy.)
|
||||
|
||||
Under Mac OS X, dynamic libraries are provided by the
|
||||
|
|
|
@ -24,7 +24,7 @@ automatically directed to shut down its managed values as well.}
|
|||
|
||||
@defproc[(custodian-shutdown-all [cust custodian?]) void?]{
|
||||
|
||||
@margin-note{In MrEd, @|eventspaces| managed by @racket[cust] are also
|
||||
@margin-note{In GRacket, @|eventspaces| managed by @racket[cust] are also
|
||||
shut down.}
|
||||
|
||||
Closes all @tech{file-stream ports}, @tech{TCP ports}, @tech{TCP
|
||||
|
@ -40,7 +40,7 @@ thread.}
|
|||
|
||||
@defparam[current-custodian cust custodian?]{
|
||||
|
||||
@margin-note{In MrEd, custodians also manage @|eventspaces|.}
|
||||
@margin-note{In GRacket, custodians also manage @|eventspaces|.}
|
||||
|
||||
A parameter that determines a custodian that assumes responsibility
|
||||
for newly created threads, @tech{file-stream ports}, TCP ports,
|
||||
|
|
|
@ -766,7 +766,7 @@ created, it is placed under the management of the @deftech{current
|
|||
custodian} as determined by the @racket[current-custodian]
|
||||
@tech{parameter}.
|
||||
|
||||
@margin-note{In MrEd, custodians also manage eventspaces.}
|
||||
@margin-note{In GRacket, custodians also manage eventspaces.}
|
||||
|
||||
Except for the root custodian, every @tech{custodian} itself it
|
||||
managed by a @tech{custodian}, so that custodians form a hierarchy.
|
||||
|
|
|
@ -113,7 +113,7 @@ by @racket[kind], which must be one of the following:
|
|||
executable as provided by the operating system for the current
|
||||
invocation.
|
||||
|
||||
@margin-note{For MrEd, the executable path is the name of a MrEd
|
||||
@margin-note{For GRacket, the executable path is the name of a GRacket
|
||||
executable.}}
|
||||
|
||||
@item{@indexed-racket['run-file] --- the path of the current
|
||||
|
|
|
@ -110,7 +110,7 @@ Racket.}
|
|||
@defproc[(banner) (and/c string? immutable?)]{
|
||||
|
||||
Returns an immutable string for Racket's start-up banner text (or the
|
||||
banner text for an embedding program, such as MrEd). The banner string
|
||||
banner text for an embedding program, such as GRacket). The banner string
|
||||
ends with a newline.}
|
||||
|
||||
|
||||
|
|
|
@ -684,7 +684,7 @@
|
|||
(send message-editor insert bcc-header)
|
||||
(send message-editor insert #\newline)))
|
||||
(send message-editor insert (string-crlf->lf other-headers))
|
||||
(send message-editor insert "X-Mailer: SirMail under MrEd ")
|
||||
(send message-editor insert "X-Mailer: SirMail under GRacket ")
|
||||
(send message-editor insert (version))
|
||||
(send message-editor insert " (")
|
||||
(send message-editor insert (path->string (system-library-subpath)))
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
define/provide-struct)
|
||||
|
||||
;; If bitmap creation fails, try an explicit GC.
|
||||
;; (This loop should be built into MrEd, but it wasn't
|
||||
;; (This loop should be built into GRacket, but it wasn't
|
||||
;; at the time this code was written.)
|
||||
(define (make-bitmap w h)
|
||||
(let loop ([n 0])
|
||||
|
|
|
@ -431,7 +431,7 @@
|
|||
(slide
|
||||
#:title "Arbitrary Drawing"
|
||||
(para "The" (code dc) "function provides an escape hatch to the underlying"
|
||||
"MrEd toolkit")
|
||||
"GRacket toolkit")
|
||||
(para "For example," (code (disk 100)) "is the same as")
|
||||
(code
|
||||
(dc (lambda (dc dx dy)
|
||||
|
|
|
@ -921,8 +921,8 @@
|
|||
|
||||
;;; ---------------------------------------------------------------------------
|
||||
;;>>... Very basic UI - works also in console mode
|
||||
;;> The following defines some hacked UI functions that works using MrEd GUI
|
||||
;;> if it is available, or the standard error and input ports otherwise.
|
||||
;;> The following defines some hacked UI functions that works using GRacket
|
||||
;;> GUI if it is available, or the standard error and input ports otherwise.
|
||||
;;> The check is done by looking for a GUI global binding.
|
||||
|
||||
;;>> *dialog-title*
|
||||
|
|
|
@ -90,7 +90,7 @@ suppress evaluation of test expressions.
|
|||
@; FIXME: need to actually list the bindings here, so they're found in
|
||||
@; the index
|
||||
|
||||
This module requires MrEd and produces an independent window when
|
||||
This module requires GRacket and produces an independent window when
|
||||
displaying test results. It provides the same bindings as
|
||||
@scheme[test-engine/scheme-tests].
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
(test
|
||||
'file-opened
|
||||
(lambda (x) (equal? (list filename "MrEd REPL") x))
|
||||
(lambda (x) (equal? (list filename "GRacket REPL") x))
|
||||
(lambda ()
|
||||
(send-sexp-to-mred
|
||||
`(begin (handler:edit-file ,tmp-filename)
|
||||
|
@ -18,7 +18,7 @@
|
|||
|
||||
(test
|
||||
'files-opened-twice
|
||||
(lambda (x) (equal? (list filename "MrEd REPL") x))
|
||||
(lambda (x) (equal? (list filename "GRacket REPL") x))
|
||||
(lambda ()
|
||||
(send-sexp-to-mred
|
||||
`(begin (handler:edit-file ,tmp-filename)
|
||||
|
|
|
@ -88,7 +88,7 @@
|
|||
(let-values ([(dir exe _)
|
||||
(split-path (find-system-path 'exec-file))])
|
||||
dir)
|
||||
(if (eq? 'windows (system-type)) "MrEd.exe" "mred")))
|
||||
(if (eq? 'windows (system-type)) "GRacket.exe" "mred")))
|
||||
(path->string
|
||||
(build-path (collection-path "tests" "framework")
|
||||
"framework-test-engine.ss")))))
|
||||
|
|
|
@ -24,8 +24,8 @@ A large number of lines (say, 50) indicates a GC problem.
|
|||
---------------------------------------------------------------------------
|
||||
|
||||
[Out of date:]
|
||||
The "random.ss" test is a randomized test of the MrEd classes that tests
|
||||
MrEd's stability. Load "random.ss", and then run
|
||||
The "random.ss" test is a randomized test of the GRacket classes that tests
|
||||
GRacket's stability. Load "random.ss", and then run
|
||||
(init)
|
||||
This attempts to create instances of classes using random
|
||||
intialization arguments. (init) can be run any number of times.
|
||||
|
@ -56,7 +56,7 @@ of symbol flags:
|
|||
Use a new eventspace; don't run mred:run-exit-callbacks and
|
||||
call wx:kill-eventspace instead.
|
||||
'console included:
|
||||
Open a MrEd console
|
||||
Open a GRacket console
|
||||
'thread included:
|
||||
Spawn a sleeping-and-looping thread during each invocation.
|
||||
Also tests semaphore-callback (because it has to)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
|
||||
;; MrEd automatic testing basic functions and macros
|
||||
;; GRacket automatic testing basic functions and macros
|
||||
|
||||
(require mzlib/class)
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
;; Don't try to run other tests from the test suite after loading this
|
||||
;; one into a particular namespace.
|
||||
|
||||
;; See also htdp-image.ss, which must be loaded into MrEd (but is in this
|
||||
;; See also htdp-image.ss, which must be loaded into GRacket (but is in this
|
||||
;; directory anyway)
|
||||
|
||||
;; Tests that apply to all languages go in beg-adv.ss.
|
||||
|
|
|
@ -367,7 +367,7 @@
|
|||
(extension-test #f)
|
||||
(extension-test #t)
|
||||
|
||||
;; A MrEd-specific test with mzc:
|
||||
;; A GRacket-specific test with mzc:
|
||||
(parameterize ([current-directory (find-system-path 'temp-dir)])
|
||||
(system* mzc
|
||||
"--gui-exe"
|
||||
|
@ -375,7 +375,7 @@
|
|||
(path->string (build-path (collection-path "tests" "mzscheme") "embed-me5.ss")))
|
||||
(try-exe (mk-dest #t) "This is 5: #<class:button%>\n" #t))
|
||||
|
||||
;; Another MrEd-specific: try embedding plot, which has extra DLLs and font files:
|
||||
;; Another GRacket-specific: try embedding plot, which has extra DLLs and font files:
|
||||
(parameterize ([current-directory (find-system-path 'temp-dir)])
|
||||
(define direct (build-path (find-system-path 'temp-dir) "direct.ps"))
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;; Load this one with MrEd
|
||||
;; Load this one with GRacket
|
||||
|
||||
(load-relative "loadtest.rktl")
|
||||
(require teachpack/htdp/image
|
||||
|
|
|
@ -982,7 +982,7 @@
|
|||
|
||||
;;;;;;;;;;;;;;;;
|
||||
;;
|
||||
;; XML (uses MrEd)
|
||||
;; XML (uses GRacket)
|
||||
;;
|
||||
;;;;;;;;;;;;;;;;
|
||||
|
||||
|
@ -1464,4 +1464,4 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -34,8 +34,8 @@ picts. However, it also means that a pict cannot be generated before
|
|||
its target device is known.
|
||||
|
||||
A slightly different set of picture-making function are available for
|
||||
MrEd and LaTeX output. For example, the LaTeX set includes `tex',
|
||||
which accepts a string of arbitrary LaTeX code, and the MrEd set
|
||||
GRacket and LaTeX output. For example, the LaTeX set includes `tex',
|
||||
which accepts a string of arbitrary LaTeX code, and the GRacket set
|
||||
includes `dc', which accepts an arbitrary Scheme procedure for drawing
|
||||
to a dc<%>.
|
||||
|
||||
|
@ -53,25 +53,25 @@ the `slide' function takes any number of picts and assembles them into
|
|||
a slide.
|
||||
|
||||
If you are using Slideshow, skip the following two sections. In the
|
||||
reference below, functions marked "MrEd only" or "MrEd only, in
|
||||
reference below, functions marked "GRacket only" or "GRacket only, in
|
||||
utils.ss" are available, and functions marked "LaTeX only" are not
|
||||
available.
|
||||
|
||||
For non-Slideshow users, _utils.ss_ library provides additional
|
||||
drawing procedures for MrEd (not LaTeX) output. These are marked below
|
||||
with "MrEd only, in utils.ss".
|
||||
drawing procedures for GRacket (not LaTeX) output. These are marked below
|
||||
with "GRacket only, in utils.ss".
|
||||
|
||||
|
||||
MrEd (or PostScript) output
|
||||
GRacket (or PostScript) output
|
||||
---------------------------
|
||||
|
||||
The MrEd texpict function set is loaded by the _mrpict.ss_ library.
|
||||
The GRacket texpict function set is loaded by the _mrpict.ss_ library.
|
||||
The library is available in unit form via _mrpict-unit.ss_, which
|
||||
exports a `mrpict@' unit that imports mred^ and exports
|
||||
`texpict-common^' and `mrpict-extra^'. The _mrpict-sig.ss_ library
|
||||
file provides both signatures.
|
||||
|
||||
When creating a picture for a MrEd dc<%> that contains text, texpict
|
||||
When creating a picture for a GRacket dc<%> that contains text, texpict
|
||||
needs a drawing context for measuring the text. Provide a dc<%> before
|
||||
constructing pictures via the `dc-for-text-size' parameter. The dc<%>
|
||||
should have the same text-measuring results as the destination dc<%>;
|
||||
|
@ -100,7 +100,7 @@ The `draw-pict' function takes a picture, a device context
|
|||
(send ps-dc end-doc)
|
||||
|
||||
If the output dc<%> has a "user scale", it is not reflected in the
|
||||
size information reported for pictures. This is consistent with MrEd's
|
||||
size information reported for pictures. This is consistent with GRacket's
|
||||
usual policy for reporting size information.
|
||||
|
||||
LaTeX output
|
||||
|
@ -113,7 +113,7 @@ provides a `texpict@' unit with no imports and taht exports
|
|||
provides both signatures.
|
||||
|
||||
Pictures created with this library are incompatible with Slideshow
|
||||
and MrEd-based output.
|
||||
and GRacket-based output.
|
||||
|
||||
To create a LaTeX picture, assemble a pict and then
|
||||
call `pict->string'. This string can be `display'ed to obtain the
|
||||
|
@ -184,7 +184,7 @@ Basic Constructors:
|
|||
the scale and offset of the dc will be set. The text mode will
|
||||
be transparent, but the font and colors are not guaranteed to be
|
||||
anything in particular.
|
||||
[MrEd only]
|
||||
[GRacket only]
|
||||
|
||||
> (blank) -> pict
|
||||
> (blank s) -> pict ; s is side length of square
|
||||
|
@ -223,7 +223,7 @@ Basic Constructors:
|
|||
disable combining; if both 'combine and 'no-combine
|
||||
are specified, the first one takes precedence
|
||||
If caps is specified, the angle must be zero.
|
||||
[MrEd only]
|
||||
[GRacket only]
|
||||
|
||||
> text-style/c :: contract?
|
||||
|
||||
|
@ -238,7 +238,7 @@ Basic Constructors:
|
|||
> (vline w h) -> pict
|
||||
> (dash-vline w h seg-length) -> pict ; default seg-length is 5
|
||||
|
||||
To draw other kinds of lines, use `dc' [MrEd only] or `picture' or
|
||||
To draw other kinds of lines, use `dc' [GRacket only] or `picture' or
|
||||
`cons-picture' [LaTeX].
|
||||
|
||||
> (frame pict) -> pict
|
||||
|
@ -258,38 +258,38 @@ Basic Constructors:
|
|||
|
||||
Like `frame' and `dash-frame', but the frame gets a color and
|
||||
optional line width
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (round-frame pict radius-w) -> pict
|
||||
> (color-round-frame pict radius-w color-string) -> pict
|
||||
> (color-round-frame pict radius-w color-string line-w) -> pict
|
||||
|
||||
Rounded frames, given a radius for the corners
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (circle diameter) -> pict
|
||||
> (disk diameter) -> pict
|
||||
|
||||
Unfilled and filled circles; works for all sizes.
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (ellipse width height) -> pict
|
||||
> (filled-ellipse width height) -> pict
|
||||
|
||||
Unfilled and filled ellipses; works for all sizes.
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (rectangle width height) -> pict
|
||||
> (filled-rectangle width height) -> pict
|
||||
|
||||
Unfilled and filled rectangle; works for all sizes.
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (rounded-rectangle width height [corner]) -> pict
|
||||
> (filled-rounded-rectangle width height [corner]) -> pict
|
||||
|
||||
Unfilled and filled rounded rectangle; works for all sizes.
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (arrow size radians) -> pict
|
||||
> (arrowhead size radians) -> pict
|
||||
|
@ -297,7 +297,7 @@ Basic Constructors:
|
|||
Creates an arrow or arrowhead in the specific direction
|
||||
within a size x size pict. (Points on the arrow may
|
||||
extend slightly beyond the box.)
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (pip-line dx dy size) -> pict
|
||||
> (pip-arrow-line dx dy size) -> pict
|
||||
|
@ -306,19 +306,19 @@ Basic Constructors:
|
|||
Creates a line [with arrowhead(s)] as a 0-sized picture suitable
|
||||
for use with `pin-over'. The 0-sized picture contains the starting
|
||||
point.
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (bitmap filename) -> pict
|
||||
> (bitmap bitmap%-object) -> pict
|
||||
|
||||
Loads a bitmap into a pict; if the bitmap is not ok,
|
||||
the result is a box containing the words "bitmap failed"
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (cloud w h [color-string "gray"]) -> pict
|
||||
|
||||
Fluffy cloud.
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (file-icon w h gray [fancy? ...]) -> pict
|
||||
|
||||
|
@ -327,27 +327,27 @@ Basic Constructors:
|
|||
gray = #t -> default color
|
||||
gray = color/string -> uses color
|
||||
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (jack-o-lantern size [pumpkin-color "orange"] [face-color "black"]) -> pict
|
||||
|
||||
Creates a jack-o-lantern; use the same pumpkin-color and
|
||||
face color to get a plain pumpkin. The size is the width.
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (angel-wing w h left?) -> pict
|
||||
|
||||
Creates an angel wing, left or right, or any size.
|
||||
The color and pen width for drawing the wing outline is the
|
||||
current one.
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
|
||||
> (standard-fish w h [direction 'left] [color "blue"]
|
||||
[eye-color "black"] [open-mouth? #t]) -> pict
|
||||
|
||||
Creates a fish, swimming either 'left or 'right.
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (explode-star small-rad large-rad points line-size line-color)
|
||||
|
||||
|
@ -453,7 +453,7 @@ Drawing Adjusters:
|
|||
|
||||
Scales a pict (by adjusting the destination dc<%>'s
|
||||
scale while drawing the pict.
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (ghost pict) -> pict
|
||||
|
||||
|
@ -463,13 +463,13 @@ Drawing Adjusters:
|
|||
> (thick pict) -> pict
|
||||
> (thin pict) -> pict
|
||||
|
||||
Set the line thickness for a picture. For MrEd output,
|
||||
Set the line thickness for a picture. For GRacket output,
|
||||
selects between a pen width of 0 or 1.
|
||||
|
||||
> (linewidth w pict) -> pict
|
||||
|
||||
Set a specific pen width for drawing.
|
||||
[MrEd only]
|
||||
[GRacket only]
|
||||
|
||||
> (colorize pict color-string) -> pict
|
||||
|
||||
|
@ -481,13 +481,13 @@ Drawing Adjusters:
|
|||
|
||||
Same as above, except uses the color% object instead of a string
|
||||
to indicate the color of the pict.
|
||||
[MrEd only]
|
||||
[GRacket only]
|
||||
|
||||
> (colorize pict num-list) -> pict
|
||||
|
||||
Same as above, except the list of three numbers indicate the
|
||||
red, green, and blue components of the color.
|
||||
[MrEd only]
|
||||
[GRacket only]
|
||||
|
||||
> (cellophane pict opacity) -> pict
|
||||
|
||||
|
@ -499,7 +499,7 @@ Drawing Adjusters:
|
|||
> (clip pict)
|
||||
|
||||
Clips a pict to its bounding box.
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (scale/improve-new-text pict-expr s-expr)
|
||||
> (scale/improve-new-text pict-expr sx-expr sy-expr)
|
||||
|
@ -507,7 +507,7 @@ Drawing Adjusters:
|
|||
Syntax that is like `scale', but also sets
|
||||
`current-expected-text-scale' while evaluating
|
||||
`pict-expr':
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (inset/clip pict amt)
|
||||
> (inset/clip pict h-amt v-amt)
|
||||
|
@ -515,7 +515,7 @@ Drawing Adjusters:
|
|||
|
||||
Insets and clips the pict's drawing to its
|
||||
bounding box. (Usually the inset amounts are negative.)
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
|
||||
Bounding-Box Adjusters:
|
||||
|
@ -614,13 +614,13 @@ Other constructors:
|
|||
The defaults for line-w, color-string, and lines-under?
|
||||
are #f, and the default for solid-head? is #t.
|
||||
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (hyperlinkize pict) -> pict
|
||||
|
||||
Adds an underline and blue color. The pict's
|
||||
height and descent are extended.
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
|
||||
Renderers:
|
||||
|
@ -637,21 +637,21 @@ Renderers:
|
|||
the window is at least that size
|
||||
and the pict is drawn in the middle of
|
||||
the window.
|
||||
[MrEd only]
|
||||
[GRacket only]
|
||||
|
||||
> (draw-pict pict dc x y) -> void
|
||||
|
||||
Draw a pict to a dc<%>
|
||||
[MrEd only]
|
||||
[GRacket only]
|
||||
|
||||
> (make-pict-drawer pict) -> ((dc x y) -> void)
|
||||
|
||||
Generate a pict-drawer procedure for multiple renderings of a
|
||||
pict (much faster than repeated calls to draw-pict)
|
||||
[MrEd only]
|
||||
[GRacket only]
|
||||
|
||||
|
||||
MrEd DC Helpers:
|
||||
GRacket DC Helpers:
|
||||
----------------
|
||||
|
||||
> (scale-color factor string-or-color%) -> color%
|
||||
|
@ -661,17 +661,17 @@ MrEd DC Helpers:
|
|||
the RGB components by the factor. If the factor is > 1,
|
||||
the color is lightened by dividing the gap between
|
||||
the RGB components and 255 by the factor.
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (find-pen string-or-color% [size 1] [style 'solid]) -> pen%
|
||||
|
||||
Gets an immutable pen% from the-pen-list
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> (find-brush string-or-color% [style 'solid]) -> brush%
|
||||
|
||||
Gets an immutable brush from the-brush-list
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> color-series ; dc<%> num-steps step-delta
|
||||
; start-color-or-string%
|
||||
|
@ -688,7 +688,7 @@ MrEd DC Helpers:
|
|||
starting color; for the last call, it matches the
|
||||
ending color; and for intermediate calls, the color
|
||||
is an intermediate color.
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
------------------------------------------------------------
|
||||
Additional LaTex Utilities
|
||||
|
@ -721,14 +721,14 @@ Additional LaTex Utilities
|
|||
[LaTeX only]
|
||||
|
||||
------------------------------------------------------------
|
||||
MrEd and LaTex Setup
|
||||
GRacket and LaTex Setup
|
||||
------------------------------------------------------------
|
||||
|
||||
> dc-for-text-size
|
||||
|
||||
Parameter specifying the dc<%> to use for measuring text.
|
||||
Default: #f
|
||||
[MrEd only]
|
||||
[GRacket only]
|
||||
|
||||
> current-expected-text-scale ; -> (list num num)
|
||||
; (list num num) -> void
|
||||
|
@ -736,7 +736,7 @@ MrEd and LaTex Setup
|
|||
A parameter used to refine text measurements to better
|
||||
match an expected scaling of the image.
|
||||
Default: 1
|
||||
[MrEd only]
|
||||
[GRacket only]
|
||||
|
||||
> (read-in-sizes string) -> void
|
||||
|
||||
|
@ -849,7 +849,7 @@ Obsolete functions
|
|||
|
||||
Obsolete versions of the `line+arrow[s]' functions,
|
||||
where the vertical delta is negated.
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
> add-line
|
||||
> add-arrow-line
|
||||
|
@ -858,7 +858,7 @@ Obsolete functions
|
|||
Obsolete variants of the pin-...line functions
|
||||
where the pict-finding functions are like `find-lt' (i.e.,
|
||||
the y result is flipped)
|
||||
[MrEd only, in utils.ss]
|
||||
[GRacket only, in utils.ss]
|
||||
|
||||
------------------------------------------------------------
|
||||
Obsolete: Commands, Putables, and Drawables
|
||||
|
@ -872,7 +872,7 @@ is (0, 0).
|
|||
|
||||
The varieties of `connect' commands are for LaTeX, where
|
||||
lines are constrained to a small set of allowed angles.
|
||||
For MrEd, all of the commands below act the same, and produce
|
||||
For GRacket, all of the commands below act the same, and produce
|
||||
lines with precisely the requested angle.
|
||||
|
||||
A command is one of the following:
|
||||
|
|
|
@ -664,7 +664,7 @@
|
|||
|
||||
(define (do-read port who read)
|
||||
(let ([port (if (gui-available?)
|
||||
;; GUI mode, since MrEd is available:
|
||||
;; GUI mode, since GRacket is available:
|
||||
(let ([text% (dynamic-require 'mred 'text%)]
|
||||
[open-input-text-editor (dynamic-require 'mred 'open-input-text-editor)])
|
||||
(let ([t (new text%)])
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
.TH MRED 1 "May 2010"
|
||||
.UC 4
|
||||
.SH NAME
|
||||
mred \- compatibility executable for Racket
|
||||
mred \- compatibility executable for GRacket
|
||||
.SH SYNOPSIS
|
||||
.B mred
|
||||
[
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
.TH MZSCHEME 1 "May 2010"
|
||||
.UC 4
|
||||
.SH NAME
|
||||
mzscheme \- compatibility executable for Racket
|
||||
mzscheme \- compatibility executable for Racket
|
||||
.SH SYNOPSIS
|
||||
.B mzscheme
|
||||
[
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* File: mred.cc
|
||||
* Purpose: MrEd main file, including a hodge-podge of global stuff
|
||||
* Purpose: GRacket main file, including a hodge-podge of global stuff
|
||||
* Author: Matthew Flatt
|
||||
* Created: 1995
|
||||
* Copyright: (c) 2004-2010 PLT Scheme Inc.
|
||||
|
@ -3642,7 +3642,7 @@ static void wxDo(Scheme_Object *proc, int argc, Scheme_Object **argv)
|
|||
return;
|
||||
}
|
||||
|
||||
/* wxDo might be called when MrEd is sleeping (i.e.,
|
||||
/* wxDo might be called when GRacket is sleeping (i.e.,
|
||||
blocked on WNE in OS X). Since we're hijacking the
|
||||
thread, save an restore block information. */
|
||||
block_descriptor = thread->block_descriptor;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* File: mredmac.cc
|
||||
* Purpose: MrEd MacOS event loop
|
||||
* Purpose: GRacket MacOS event loop
|
||||
* Author: Matthew Flatt
|
||||
* Created: 1996
|
||||
* Copyright: (c) 2004-2010 PLT Scheme Inc.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* File: mredmsw.cc
|
||||
* Purpose: MrEd Windows event loop
|
||||
* Purpose: GRacket Windows event loop
|
||||
* Author: Matthew Flatt
|
||||
* Created: 1996
|
||||
* Copyright: (c) 2004-2010 PLT Scheme Inc.
|
||||
|
@ -354,7 +354,7 @@ void MrEdDispatchEvent(MSG *msg)
|
|||
|
||||
void wxCopyData(LPARAM lParam)
|
||||
{
|
||||
/* Is this a message from another MrEd? */
|
||||
/* Is this a message from another GRacket? */
|
||||
int len;
|
||||
COPYDATASTRUCT *cd;
|
||||
len = strlen(MRED_GUID);
|
||||
|
@ -400,7 +400,7 @@ void wxCopyData(LPARAM lParam)
|
|||
|
||||
int wxEventTrampoline(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam,
|
||||
LRESULT *res, WNDPROC proc)
|
||||
/* The Windows event dispatcher doesn't like MrEd's thread
|
||||
/* The Windows event dispatcher doesn't like GRacket's thread
|
||||
implementation. In particular, if a message causes a thread
|
||||
switch or kill, because it triggers Scheme code, then event
|
||||
dispatches don't return in the way that Windows expects.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* File: mredx.cc
|
||||
* Purpose: MrEd X Windows event loop
|
||||
* Purpose: GRacket X Windows event loop
|
||||
* Author: Matthew Flatt
|
||||
* Created: 1996
|
||||
* Copyright: (c) 2004-2010 PLT Scheme Inc.
|
||||
|
@ -177,7 +177,7 @@ static void CheckUngrab(Display *dpy, Check_Ungrab_Record *cur)
|
|||
&b, &d);
|
||||
if ((cur->x < 0) || (cur->y < 0)
|
||||
|| ((unsigned int)cur->x > w) || ((unsigned int)cur->y > h)) {
|
||||
/* Looks bad, but is it a click in a MrEd window
|
||||
/* Looks bad, but is it a click in a GRacket window
|
||||
that we could care about? */
|
||||
|
||||
wxWindow *w;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
void *dlopen(const char *filename, int flags)
|
||||
{
|
||||
scheme_signal_error("load-extension: can't use with a statically-linked"
|
||||
" MrEd");
|
||||
" GRacket");
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -408,7 +408,7 @@ void wxDrop_GetArgs(int *argc, char ***argv, int *in_terminal)
|
|||
|
||||
GetStarterInfo();
|
||||
|
||||
/* Open the PLT_MrEd framework resources: */
|
||||
/* Open the GRacket framework resources: */
|
||||
{
|
||||
CFBundleRef fwBundle;
|
||||
|
||||
|
|
|
@ -160,7 +160,7 @@ typedef enum _mx_html_where_ {
|
|||
insert,append
|
||||
} MX_HTML_WHERE;
|
||||
|
||||
typedef struct _browser_window_ { // parameters a la MrEd frame% class
|
||||
typedef struct _browser_window_ { // parameters a la GRacket frame% class
|
||||
const char *label;
|
||||
int width;
|
||||
int height;
|
||||
|
|
|
@ -167,7 +167,7 @@ int GC_general_register_disappearing_link(void * * link,
|
|||
|
||||
#if 1
|
||||
/* PLTSCHEME: If wxObjects are sometimes stack-allocated,
|
||||
MrEd needs this. Keeping it for now just-in-case, though
|
||||
GRacket needs this. Keeping it for now just-in-case, though
|
||||
it should be eliminated in the future. */
|
||||
if (!GC_base(link))
|
||||
return 1;
|
||||
|
|
|
@ -36,7 +36,7 @@ static void GC_prim_stringout(char *s, int len)
|
|||
/* Since getting the screen buffer info failed,
|
||||
we must be in GUI mode. Create a console
|
||||
window --- and set the handler so that closing
|
||||
the window doesn't abort MrEd! */
|
||||
the window doesn't abort GRacket! */
|
||||
AllocConsole();
|
||||
console = GetStdHandle(STD_ERROR_HANDLE);
|
||||
GetConsoleScreenBufferInfo(console, &info);
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
/* This file defines Racket's main(), which is a jumble of
|
||||
platform-specific initialization. The included file "cmdline.inc"
|
||||
implements command-line parsing. (MrEd also uses "cmdline.inc".)
|
||||
implements command-line parsing. (GRacket also uses "cmdline.inc".)
|
||||
|
||||
The rest of the source code resides in the `src' subdirectory
|
||||
(except for the garbage collector, which is in `gc', `sgc', or
|
||||
|
|
|
@ -3268,7 +3268,7 @@ read_string(int is_byte, int is_honu_char, Scheme_Object *port,
|
|||
}
|
||||
|
||||
Scheme_Object *scheme_read_byte_string(Scheme_Object *port)
|
||||
/* used by MrEd */
|
||||
/* used by GRacket */
|
||||
{
|
||||
return read_string(1, 0, port,
|
||||
NULL, 0, 0, 0,
|
||||
|
|
|
@ -719,8 +719,8 @@ int scheme_wait_semas_chs(int n, Scheme_Object **o, int just_try, Syncing *synci
|
|||
out_of_a_line = 0;
|
||||
|
||||
/* If we get the post, we must return WITHOUT BLOCKING.
|
||||
MrEd, for example, depends on this special property, which ensures
|
||||
that the thread can't be broken or killed between
|
||||
GRacket, for example, depends on this special property, which
|
||||
ensures that the thread can't be broken or killed between
|
||||
receiving the post and returning. */
|
||||
|
||||
if (!syncing) {
|
||||
|
|
|
@ -2000,7 +2000,7 @@ void wxPath::Arc(double x, double y, double w, double h, double start, double en
|
|||
|
||||
start_open = IsOpen();
|
||||
|
||||
/* The arc below is backwards from the MrEd API.... */
|
||||
/* The arc below is backwards from the GRacket API.... */
|
||||
{
|
||||
double s;
|
||||
s = start;
|
||||
|
|
|
@ -232,7 +232,7 @@ static int alloc_close_color(Display *display, Colormap cmap, XColor *xc)
|
|||
if (approxmsg) {
|
||||
wxError("Cannot allocate color, using approximate match.\n"
|
||||
"(Future allocations may be approximate without report.)",
|
||||
"MrEd Warning");
|
||||
"GRacket Warning");
|
||||
|
||||
approxmsg = 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user