mirror of
https://github.com/Sei-Lisa/LSL-PyOptimizer
synced 2025-07-01 23:58:20 +00:00
Add 'nofoldtabs' option to disable warning when a function generates tabs
When a function folds to a string that contains a tab, e.g. llUnescapeURL("%09"), or to a list that contains a string that contains a tab, a warning is emitted unless the foldtabs option (which forces the optimization) is used. This option allows to quiet the warning without forcing the optimization.
This commit is contained in:
parent
5804a9a610
commit
dc98e477d7
3 changed files with 10 additions and 10 deletions
|
@ -945,16 +945,13 @@ class foldconst(object):
|
|||
else:
|
||||
value = fn(*tuple(arg['value'] for arg in child))
|
||||
if not self.foldtabs:
|
||||
generatesTabs = ( isinstance(value, unicode)
|
||||
and '\t' in value
|
||||
or type(value) == list
|
||||
and any(isinstance(x, unicode)
|
||||
and '\t' in x
|
||||
for x in value
|
||||
)
|
||||
)
|
||||
if generatesTabs:
|
||||
warning("Can't optimize call to %s because it would generate a tab character (you can force the optimization with the foldtabs option)." % node['name'])
|
||||
if not self.nofoldtabs:
|
||||
generatesTabs = (
|
||||
isinstance(value, unicode) and '\t' in value
|
||||
or type(value) == list and any(isinstance(x, unicode) and '\t' in x for x in value)
|
||||
)
|
||||
if generatesTabs:
|
||||
warning("Can't optimize call to %s because it would generate a tab character (you can force the optimization with the foldtabs option, or disable this warning with the nofoldtabs option)." % node['name'])
|
||||
return
|
||||
parent[index] = {'nt':'CONST', 't':node['t'], 'value':value}
|
||||
except lslfuncs.ELSLCantCompute:
|
||||
|
|
|
@ -68,6 +68,7 @@ class optimizer(foldconst, renamer, deadcode):
|
|||
self.addstrings = 'addstrings' in options
|
||||
|
||||
self.foldtabs = 'foldtabs' in options
|
||||
self.nofoldtabs = 'nofoldtabs' in options
|
||||
|
||||
self.shrinknames = 'shrinknames' in options
|
||||
|
||||
|
|
2
main.py
2
main.py
|
@ -277,6 +277,8 @@ Optimizer options (+ means active by default, - means inactive by default):
|
|||
expansion of functions that produce strings with tabs.
|
||||
The resulting source isn't guaranteed to be
|
||||
copy-paste-able to the viewer.
|
||||
nofoldtabs - Suppress warning when a function can't be optimized
|
||||
because it generates a string or list with a tab.
|
||||
skippreproc + Skip preprocessor directives in the source as if they
|
||||
were comments. Not useful unless the script is itself
|
||||
the output of a preprocessor like GNU cpp, which inserts
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue