implemented debug function name stack
authorborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 1 Mar 2008 18:45:45 +0000 (18:45 +0000)
committerborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 1 Mar 2008 18:45:45 +0000 (18:45 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@5061 4a8a32a2-be11-0410-ad9d-d568d2c75423

support/scripts/sdcc.nsi

index b85acea9d95422efe4593969b5b2932ee6a49875..0714463f6e0d3523fdf7943045c6e4410636e583 100644 (file)
 
 !ifdef SDCC.DEBUG
   Var SDCC.FunctionName
+  Var SDCC.StrStack0
+  Var SDCC.StrStack1
+  Var SDCC.StrStack2
+  Var SDCC.StrStack3
+  Var SDCC.StrStack4
+
+!define SDCC.PushStr "!insertmacro MACRO_SDCC_PushStr"
+!macro MACRO_SDCC_PushStr NAME
+  StrCpy $SDCC.StrStack4 $SDCC.StrStack3
+  StrCpy $SDCC.StrStack3 $SDCC.StrStack2
+  StrCpy $SDCC.StrStack2 $SDCC.StrStack1
+  StrCpy $SDCC.StrStack1 $SDCC.StrStack0
+  StrCpy $SDCC.StrStack0 $SDCC.FunctionName
+  StrCpy $SDCC.FunctionName ${NAME}
+!macroend
+
+!define SDCC.PopStr "!insertmacro MACRO_SDCC_PopStr"
+!macro MACRO_SDCC_PopStr
+  StrCpy $SDCC.FunctionName $SDCC.StrStack0
+  StrCpy $SDCC.StrStack0 $SDCC.StrStack1
+  StrCpy $SDCC.StrStack1 $SDCC.StrStack2
+  StrCpy $SDCC.StrStack2 $SDCC.StrStack3
+  StrCpy $SDCC.StrStack3 $SDCC.StrStack4
+!macroend
 !endif
 
 !define DebugMsg "!insertmacro MACRO_SDCC_DebugMsg"
 !macro MACRO_SDCC_Function NAME
   Function "${NAME}"
   !ifdef SDCC.DEBUG
-    StrCpy $SDCC.FunctionName ${NAME}
+    ${SDCC.PushStr} ${NAME}
   !endif
 !macroend
 
 !define FunctionEnd "!insertmacro MACRO_SDCC_FunctionEnd"
 !macro MACRO_SDCC_FunctionEnd
   !ifdef SDCC.DEBUG
-    StrCpy $SDCC.FunctionName ""
+    ${SDCC.PopStr}
   !endif
   FunctionEnd
 !macroend