Skip to content

Commit

Permalink
fix getting port name for reader errors
Browse files Browse the repository at this point in the history
  • Loading branch information
mflatt committed Nov 5, 2015
1 parent 5cc3059 commit 58c919c
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 5 deletions.
18 changes: 18 additions & 0 deletions pkgs/racket-test-core/tests/racket/port.rktl
Original file line number Diff line number Diff line change
Expand Up @@ -888,6 +888,24 @@

(delete-file path))

;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Check reader error-message formatting for a struct port

(let ()
(define-struct wrapper (other port)
#:property prop:input-port 1)
(err/rt-test
(read (wrapper #f
(make-input-port "wrapped"
(lambda (bstr)
(bytes-set! bstr 0 (char->integer #\)))
1)
(lambda (bstr d evt)
(bytes-set! bstr 0 (char->integer #\)))
1)
void)))
exn:fail:read?))

;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(report-errs)
4 changes: 0 additions & 4 deletions racket/src/racket/include/scheme.h
Original file line number Diff line number Diff line change
Expand Up @@ -1545,10 +1545,6 @@ struct Scheme_Output_Port
struct Scheme_Input_Port *input_half;
};

#define SCHEME_INPORT_VAL(obj) (((Scheme_Input_Port *)(obj))->port_data)
#define SCHEME_OUTPORT_VAL(obj) (((Scheme_Output_Port *)(obj))->port_data)
#define SCHEME_IPORT_NAME(obj) (((Scheme_Input_Port *)obj)->name)

#define SCHEME_SPECIAL (-2)
#define SCHEME_UNLESS_READY (-3)

Expand Down
2 changes: 1 addition & 1 deletion racket/src/racket/src/error.c
Original file line number Diff line number Diff line change
Expand Up @@ -2175,7 +2175,7 @@ void scheme_read_err(Scheme_Object *port,

if (port) {
Scheme_Object *pn;
pn = SCHEME_IPORT_NAME(port);
pn = scheme_input_port_record(port)->name;
if (SCHEME_PATHP(pn)) {
pn = scheme_remove_current_directory_prefix(pn);
fn = SCHEME_PATH_VAL(pn);
Expand Down

0 comments on commit 58c919c

Please sign in to comment.