Skip to content

Commit

Permalink
[jvm] allow - in resource names
Browse files Browse the repository at this point in the history
closes #11275
  • Loading branch information
Simn committed Jul 12, 2023
1 parent d457083 commit 402d201
Show file tree
Hide file tree
Showing 6 changed files with 8 additions and 8 deletions.
6 changes: 3 additions & 3 deletions src/codegen/codegen.ml
Original file line number Diff line number Diff line change
Expand Up @@ -65,12 +65,12 @@ let add_property_field com c =
c.cl_statics <- PMap.add cf.cf_name cf c.cl_statics;
c.cl_ordered_statics <- cf :: c.cl_ordered_statics

let escape_res_name name allow_dirs =
let escape_res_name name allowed =
ExtString.String.replace_chars (fun chr ->
if (chr >= 'a' && chr <= 'z') || (chr >= 'A' && chr <= 'Z') || (chr >= '0' && chr <= '9') || chr = '_' || chr = '.' then
Char.escaped chr
else if chr = '/' && allow_dirs then
"/"
else if List.mem chr allowed then
Char.escaped chr
else
"-x" ^ (string_of_int (Char.code chr))) name

Expand Down
2 changes: 1 addition & 1 deletion src/generators/gencs.ml
Original file line number Diff line number Diff line change
Expand Up @@ -3421,7 +3421,7 @@ let generate con =
gen.gcon.file ^ "/src/Resources"
in
Hashtbl.iter (fun name v ->
let name = Codegen.escape_res_name name true in
let name = Codegen.escape_res_name name ['/'] in
let full_path = src ^ "/" ^ name in
Path.mkdir_from_path full_path;

Expand Down
2 changes: 1 addition & 1 deletion src/generators/genjava.ml
Original file line number Diff line number Diff line change
Expand Up @@ -2661,7 +2661,7 @@ let generate con =
let res = ref [] in
Hashtbl.iter (fun name v ->
res := { eexpr = TConst(TString name); etype = gen.gcon.basic.tstring; epos = null_pos } :: !res;
let name = Codegen.escape_res_name name true in
let name = Codegen.escape_res_name name ['/'] in
let full_path = gen.gcon.file ^ "/src/" ^ name in
Path.mkdir_from_path full_path;

Expand Down
2 changes: 1 addition & 1 deletion src/generators/genjvm.ml
Original file line number Diff line number Diff line change
Expand Up @@ -3073,7 +3073,7 @@ let generate jvm_flag com =
end
) com.native_libs.java_libs in
Hashtbl.iter (fun name v ->
let filename = Codegen.escape_res_name name true in
let filename = Codegen.escape_res_name name ['/';'-'] in
gctx.out#add_entry v filename;
) com.resources;
let generate_real_types () =
Expand Down
2 changes: 1 addition & 1 deletion src/generators/genphp7.ml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ let write_resource dir name data =
let rdir = dir ^ "/res" in
if not (Sys.file_exists dir) then Unix.mkdir dir 0o755;
if not (Sys.file_exists rdir) then Unix.mkdir rdir 0o755;
let name = Codegen.escape_res_name name false in
let name = Codegen.escape_res_name name [] in
let ch = open_out_bin (rdir ^ "/" ^ name) in
output_string ch data;
close_out ch
Expand Down
2 changes: 1 addition & 1 deletion src/generators/genpy.ml
Original file line number Diff line number Diff line change
Expand Up @@ -2270,7 +2270,7 @@ module Generator = struct
end else
","
in
let k_enc = Codegen.escape_res_name k false in
let k_enc = Codegen.escape_res_name k [] in
print ctx "%s\"%s\": open('%%s.%%s'%%(_file,'%s'),'rb').read()" prefix (StringHelper.s_escape k) k_enc;

let f = open_out_bin (ctx.com.file ^ "." ^ k_enc) in
Expand Down

0 comments on commit 402d201

Please sign in to comment.