* storing/restoring of settings when doing a specialization

git-svn-id: trunk@5336 -
This commit is contained in:
florian 2006-11-11 21:37:09 +00:00
parent 80876932aa
commit f9235938b4

View File

@ -88,6 +88,9 @@ interface
replaysavetoken : ttoken; replaysavetoken : ttoken;
replaytokenbuf, replaytokenbuf,
recordtokenbuf : tdynamicarray; recordtokenbuf : tdynamicarray;
{ old settings, i.e. settings specialization was started }
old_settings,
{ last settings we stored } { last settings we stored }
last_settings : tsettings; last_settings : tsettings;
@ -1913,6 +1916,7 @@ In case not, the value returned can be arbitrary.
if token in [_CWCHAR,_CWSTRING,_CCHAR,_CSTRING,_INTCONST,_REALNUMBER,_ID] then if token in [_CWCHAR,_CWSTRING,_CCHAR,_CSTRING,_INTCONST,_REALNUMBER,_ID] then
internalerror(200511178); internalerror(200511178);
replaysavetoken:=token; replaysavetoken:=token;
old_settings:=current_settings;
if assigned(inputpointer) then if assigned(inputpointer) then
dec(inputpointer); dec(inputpointer);
{ install buffer } { install buffer }
@ -1941,6 +1945,8 @@ In case not, the value returned can be arbitrary.
inc(inputpointer); inc(inputpointer);
end; end;
token:=replaysavetoken; token:=replaysavetoken;
{ restore compiler settings }
current_settings:=old_settings;
exit; exit;
end; end;
repeat repeat