Description:
merge fix utf8
Commit status:
[Not Reviewed]
References:
merge algo
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r188:4805f3ab73c4 - - 2 files changed: 4 inserted, 2 deleted

@@ -90,60 +90,61
90 90 end
91 91
92 92 # Compile.
93 93 case params[:prog_lang]
94 94
95 95 when "c"
96 96 command = "#{C_COMPILER} #{params[:source_file]} -o #{params[:output_file]} #{C_OPTIONS}"
97 97 system(command, err: params[:message_file])
98 98
99 99 when "c++"
100 100 command = "#{CPLUSPLUS_COMPILER} #{params[:source_file]} -o #{params[:output_file]} #{CPLUSPLUS_OPTIONS}"
101 101 system(command, err: params[:message_file])
102 102
103 103 when "pas"
104 104 command = "#{PASCAL_COMPILER} #{params[:source_file]} -ooutpas #{PASCAL_OPTIONS}"
105 105 system(command,out: params[:message_file])
106 106 FileUtils.mv("output", params[:output_file])
107 107
108 108 when "java"
109 109 #rename the file to the public class name
110 110
111 111 #get the class name
112 112 classname = 'DUMMY'
113 113 source = Array.new
114 - File.foreach(params[:source_file]) do |line|
114 + File.foreach(params[:source_file],'r:UTF-8') do |line|
115 + line.encode!('UTF-8','UTF-8',invalid: :replace, replace: '')
115 116 md = /\s*public\s*class\s*(\w*)/.match(line)
116 117 classname=md[1] if md
117 118 source << line unless line =~ /\s*package\s*\w+\s*\;/
118 119 end
119 120 File.open("#{classname}.java","w") do |file|
120 121 source.each do |s|
121 122 file.puts s
122 123 end
123 124 end
124 125 #system("cp #{params[:source_file]} #{classname}.java")
125 - command = "#{JAVA_COMPILER} #{classname}.java"
126 + command = "#{JAVA_COMPILER} -encoding utf8 #{classname}.java"
126 127 system(command, err: params[:message_file])
127 128 if File.exists?(classname + ".class")
128 129 File.open(params[:output_file],"w") {|file| file.write("#{classname}")}
129 130 end
130 131 if classname == 'DUMMY'
131 132 File.open(params[:message_file],"w") {|file| file.write("Cannot find any public class in the source code\n")}
132 133 end
133 134
134 135 when "ruby"
135 136 command = "#{RUBY_INTERPRETER} -c #{params[:source_file]}"
136 137 if system(command, err: params[:message_file])
137 138 File.open(params[:output_file],"w") do |out_file|
138 139 out_file.puts "#!#{RUBY_INTERPRETER}"
139 140 File.open(params[:source_file],"r").each do |line|
140 141 out_file.print line
141 142 end
142 143 end
143 144 File.chmod(0755, params[:output_file])
144 145 end
145 146
146 147 when "python"
147 148 command = "#{PYTHON_CHECKER} #{params[:source_file]}"
148 149 if system(command, out: params[:message_file])
149 150 #compile to python bytecode
@@ -108,26 +108,27
108 108 all_score = all_score + run_score
109 109
110 110 # append comment for test run with many test cases
111 111 if run.tests.length > 1
112 112 run_comment_short = '[' + run_comment_short + ']'
113 113 end
114 114 all_comment += run_comment_short
115 115 end
116 116
117 117 result_file = File.new("result", "w")
118 118 result_file.write all_score
119 119 result_file.write "\n"
120 120 result_file.close
121 121
122 122 comment_file = File.new("comment", "w")
123 123 comment_file.write "#{all_comment}\n"
124 124 comment_file.close
125 125
126 126
127 127 File.open("run_stat","w") do |file|
128 128 file.puts max_runtime
129 129 file.puts peak_memory
130 130 end
131 131
132 + puts "#{all_score} #{all_comment}"
132 133 log "score = #{all_score}\ncomment = #{all_comment}"
133 134 log "max_runtime = #{max_runtime}\npeak_memory = #{peak_memory}"
You need to be logged in to leave comments. Login now