     require ;
 
 : edit-location ( file line -- )
-    >r (normalize-path) "\\\\?\\" ?head drop r>
+    >r (normalize-path) r>
     edit-hook get [ call ] [ no-edit-hook edit-location ] if* ;
 
 : edit ( defspec -- )

USING: parser kernel namespaces sequences definitions io.files
inspector continuations tools.crossref tools.vocabs 
io prettyprint source-files assocs vocabs vocabs.loader
io.backend splitting classes.tuple ;
IN: editors

TUPLE: no-edit-hook ;

: edit-vocab ( name -- )
    vocab-source-path 1 edit-location ;

GENERIC: find-parse-error ( error -- error' )

M: parse-error find-parse-error
    dup error>> find-parse-error [ ] [ ] ?if ;

M: condition find-parse-error
    error>> find-parse-error ;

M: object find-parse-error
    drop f ;

: :edit ( -- )
    error get find-parse-error [
        [ file>> path>> ] [ line>> ] bi edit-location
    ] when* ;

: fix ( word -- )
    [ "Fixing " write pprint " and all usages..." print nl ]
    [ [ usage ] keep prefix ] bi
    [
        [ "Editing " write . ]
        [
            "RETURN moves on to the next usage, C+d stops." print
            flush
            edit
            readln
        ] bi
    ] all? drop ;
