Skip to content

Commit 719eaf7

Browse files
committed
Join non-preprocessor lines in minifier for better compression
1 parent 9811805 commit 719eaf7

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

cp-algo/util/minify.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,27 @@ def compress_line(line):
123123
return ''.join(result)
124124

125125
lines = [compress_line(line) for line in code.split('\n')]
126-
code = '\n'.join(lines)
126+
127+
# Join lines intelligently: keep preprocessor directives on their own lines,
128+
# and keep a newline after them
129+
result_lines = []
130+
for i, line in enumerate(lines):
131+
if not line:
132+
continue
133+
134+
if line.startswith('#'):
135+
# Preprocessor directive - always on its own line
136+
result_lines.append(line)
137+
else:
138+
# Regular code - try to join with previous line if possible
139+
if result_lines and not result_lines[-1].startswith('#'):
140+
# Previous line is not a preprocessor directive, can join
141+
result_lines[-1] += line
142+
else:
143+
# Previous line is a preprocessor directive or this is first line
144+
result_lines.append(line)
145+
146+
code = '\n'.join(result_lines)
127147

128148
return code
129149

0 commit comments

Comments
 (0)