* configure.in, configure: support for winsock2
authorborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 5 Sep 2006 20:16:41 +0000 (20:16 +0000)
committerborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Tue, 5 Sep 2006 20:16:41 +0000 (20:16 +0000)
* debugger/mcs51/break.h, debugger/mcs51/cmd.c,
  debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
  debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
  debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
  debugger/mcs51/symtab.h: sdcdb WIN32 native port

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4363 4a8a32a2-be11-0410-ad9d-d568d2c75423

12 files changed:
ChangeLog
configure
configure.in
debugger/mcs51/break.h
debugger/mcs51/cmd.c
debugger/mcs51/cmd.h
debugger/mcs51/sdcdb.c
debugger/mcs51/sdcdb.h
debugger/mcs51/simi.c
debugger/mcs51/simi.h
debugger/mcs51/symtab.c
debugger/mcs51/symtab.h

index 685c708b80d7e4bd9eafd8dc4dd82afee3724d3c..3f7175c34a8712819057cd019a5a7309842f2245 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2006-09-05 Borut Razem <borut.razem AT siol.net>
+
+       * configure.in, configure: support for winsock2
+       * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
+         debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
+         debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
+         debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
+         debugger/mcs51/symtab.h: sdcdb WIN32 native port
+
 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
 
        * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
index 08cbd2511204a45890f47a503b1d8c7f9c6abcb8..c0224a65e77581123251313bd718ec0b5b510457 100755 (executable)
--- a/configure
+++ b/configure
@@ -3638,6 +3638,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 # Checking for header files.
 # ===========================================================================
+socket_type=unknown
 
 echo "$as_me:$LINENO: checking for egrep" >&5
 echo $ECHO_N "checking for egrep... $ECHO_C" >&6
@@ -4037,15 +4038,170 @@ if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
+ socket_type=sys_socket_h
+fi
+
+done
+
+if test $socket_type = unknown; then
+
+for ac_header in winsock2.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+ socket_type=winsock2_h
 fi
 
 done
 
+fi
 
 
 # Checking for functions/libs
 # ===========================================================================
+if test $socket_type = winsock2_h; then
+  LIBS="-lws2_32 $LIBS"
+else
 
 echo "$as_me:$LINENO: checking for socket in -lsocket" >&5
 echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6
@@ -4194,6 +4350,7 @@ _ACEOF
 
 fi
 
+fi
 
 
 # Checking for functions
@@ -6343,7 +6500,6 @@ _ACEOF
 
 fi
 
-ac_cv_c_char_unsigned=yes
 
 type_name()
 {
index c3ecc6b678dea545cffefc73495b9a825076a4ff..65596ecfc97a5fe267d456bfa78e902cd9ce8d33 100755 (executable)
@@ -63,13 +63,21 @@ AC_LANG([C])
 
 # Checking for header files.
 # ===========================================================================
-AC_CHECK_HEADERS(sys/socket.h)
+socket_type=unknown
+AC_CHECK_HEADERS(sys/socket.h, socket_type=sys_socket_h)
+if test $socket_type = unknown; then
+  AC_CHECK_HEADERS(winsock2.h, socket_type=winsock2_h)
+fi
 
 
 # Checking for functions/libs
 # ===========================================================================
-AC_CHECK_LIB(socket,socket)
-AC_CHECK_LIB(nsl,xdr_short)
+if test $socket_type = winsock2_h; then
+  LIBS="-lws2_32 $LIBS"
+else
+  AC_CHECK_LIB(socket,socket)
+  AC_CHECK_LIB(nsl,xdr_short)
+fi
 
 
 # Checking for functions
index 727fd14e7758afb2c025ac1aa74f2587e2e53c9b..c0b2e16bb6f774df2280812910b64faa9eaba0bf 100644 (file)
@@ -1,24 +1,24 @@
 /*-------------------------------------------------------------------------
   break.h - Header file for break point management
-             Written By -  Sandeep Dutta . sandeep.dutta@usa.net (1999)
+        Written By -  Sandeep Dutta . sandeep.dutta@usa.net (1999)
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
    Free Software Foundation; either version 2, or (at your option) any
    later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-   
+
    In other words, you are welcome to use, share and improve this program.
    You are forbidden to forbid anyone else to use, share and improve
-   what you give them.   Help stamp out software-hoarding!  
+   what you give them.   Help stamp out software-hoarding!
 -------------------------------------------------------------------------*/
 
 #ifndef SDCDB_BREAK_H
@@ -36,14 +36,14 @@ enum {
     NEXT    ,
     FENTRY  ,
     FEXIT,
-    TMPUSER };  
+    TMPUSER };
 
 typedef struct breakp
 {
     unsigned addr;           /* address of break point */
     int      bpnum ;         /* break point number */
-    char     addrType;       /* data or code */    
-    char     bpType  ;       /* bp type USER/ LOGICAL */  
+    char     addrType;       /* data or code */
+    char     bpType  ;       /* bp type USER/ LOGICAL */
     char     *filename;      /* file name */
     int      lineno  ;       /* lineno */
     int (*callBack)
@@ -58,20 +58,20 @@ typedef struct breakp
 
 #define BP_CALLBACK(func) \
     int func (unsigned addr, \
-            breakp *bp, \
-            context *ctxt)
+             breakp *bp, \
+             context *ctxt)
 
 #define EXTERN_BP_CALLBACK(func) \
     extern int func (unsigned addr, \
-            breakp *bp, \
-            context *ctxt)
+             breakp *bp, \
+             context *ctxt)
 
 extern char userBpPresent;
 extern char doingSteps;
 
 
-int setBreakPoint (unsigned , char , char, 
-                   int (*callBack)(unsigned,breakp *bp,context *),char *, int);
+int setBreakPoint (unsigned , char , char,
+                    int (*callBack)(unsigned,breakp *bp,context *),char *, int);
 
 long getLastBreakptNumber(void);
 void resetHitCount(void);
index fef7d6dc629f1a0e4504dbbe6533ece2384a8e9e..0865e0b2e6a6d5546cc6d5fedf388f06ac6f7b91 100644 (file)
@@ -1,7 +1,6 @@
 /*-------------------------------------------------------------------------
     cmd.c - source  file for debugger command execution
-
-             Written By -  Sandeep Dutta . sandeep.dutta@usa.net (1999)
+        Written By -  Sandeep Dutta . sandeep.dutta@usa.net (1999)
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
@@ -347,11 +346,11 @@ DEFSETFUNC(funcWithName)
     V_ARG(function **,funcp);
 
     if (*funcp)
-       return 0;
+        return 0;
 
     if (strcmp(func->sym->name,name) == 0) {
-       *funcp = func;
-       return 1;
+        *funcp = func;
+        return 1;
     }
 
     return 0;
@@ -407,27 +406,27 @@ static void setBPatModLine (module *mod, int line, char bpType )
 
     next_line = line;
     for ( ; next_line < (srcMode == SRC_CMODE ? mod->ncLines : mod->nasmLines ) ;
-         next_line++ ) {
-       if (srcMode == SRC_CMODE) {
-           if (mod->cLines[next_line]->addr != INT_MAX) {
-               setBreakPoint (mod->cLines[next_line]->addr, CODE, bpType,
-                              userBpCB, mod->c_name, next_line);
-               return;
-//             break;
-           }
-       }
-       else {
-          if (mod->asmLines[next_line]->addr != INT_MAX) {
-              setBreakPoint (mod->asmLines[next_line]->addr, CODE, bpType,
-                             userBpCB, mod->asm_name, next_line);
-               return;
-//            break;
-          }
-       }
-    }
-
-       fprintf(stderr,"No line %d or after in file \"%s\"..\n",
-                       line,mod->c_name);
+          next_line++ ) {
+        if (srcMode == SRC_CMODE) {
+            if (mod->cLines[next_line]->addr != INT_MAX) {
+                setBreakPoint (mod->cLines[next_line]->addr, CODE, bpType,
+                               userBpCB, mod->c_name, next_line);
+                return;
+//              break;
+            }
+        }
+        else {
+           if (mod->asmLines[next_line]->addr != INT_MAX) {
+               setBreakPoint (mod->asmLines[next_line]->addr, CODE, bpType,
+                              userBpCB, mod->asm_name, next_line);
+                return;
+//             break;
+           }
+        }
+    }
+
+        fprintf(stderr,"No line %d or after in file \"%s\"..\n",
+                        line,mod->c_name);
 
     return;
 }
@@ -440,29 +439,29 @@ static void clearBPatModLine (module *mod, int line)
     /* look for the first executable line after the line
        specified & get the break point there */
     if (srcMode == SRC_CMODE && line > mod->ncLines) {
-       fprintf(stderr,"No line %d in file \"%s\".\n",
-               line,mod->c_name);
-       return ;
+        fprintf(stderr,"No line %d in file \"%s\".\n",
+                line,mod->c_name);
+        return ;
     }
 
     if (srcMode == SRC_AMODE && line > mod->ncLines) {
-       fprintf(stderr,"No line %d in file \"%s\".\n",
-               line,mod->c_name);
-       return ;
+        fprintf(stderr,"No line %d in file \"%s\".\n",
+                line,mod->c_name);
+        return ;
     }
 
     for ( ; line < (srcMode == SRC_CMODE ? mod->ncLines : mod->nasmLines ) ;
-         line++ ) {
-       if (srcMode == SRC_CMODE)
-           if (mod->cLines[line]->addr) {
-               clearUSERbp (mod->cLines[line]->addr);
-               break;
-           }
-       else
-           if (mod->asmLines[line]->addr) {
-               clearUSERbp (mod->asmLines[line]->addr);
-               break;
-           }
+          line++ ) {
+        if (srcMode == SRC_CMODE)
+            if (mod->cLines[line]->addr) {
+                clearUSERbp (mod->cLines[line]->addr);
+                break;
+            }
+        else
+            if (mod->asmLines[line]->addr) {
+                clearUSERbp (mod->asmLines[line]->addr);
+                break;
+            }
     }
 
     return;
@@ -519,9 +518,9 @@ DEFSETFUNC(funcWithNameModule)
         return 0;
 
     if (strcmp(func->sym->name,fname) == 0 &&
-       strcmp(func->mod->c_name,mname) == 0) {
-       *funcp = func;
-       return 1;
+        strcmp(func->mod->c_name,mname) == 0) {
+        *funcp = func;
+        return 1;
     }
 
     return 0;
@@ -537,14 +536,14 @@ DEFSETFUNC(funcInAddr)
     V_ARG(function **,funcp);
 
     if (*funcp)
-       return 0;
+        return 0;
 
     /* in the address range */
     if (func->sym->addr <= addr &&
-       func->sym->eaddr >= addr) {
+        func->sym->eaddr >= addr) {
 
-       *funcp = func;
-       return 1;
+        *funcp = func;
+        return 1;
     }
 
     return 0;
@@ -559,11 +558,11 @@ DEFSETFUNC(setStepBp)
 
     if (func->sym && func->sym->addr ) {
 
-       /* set the entry break point */
-       setBreakPoint (func->sym->addr , CODE , STEP ,
-                      stepBpCB ,func->mod->c_name , func->entryline);
+        /* set the entry break point */
+        setBreakPoint (func->sym->addr , CODE , STEP ,
+                       stepBpCB ,func->mod->c_name , func->entryline);
 
-       return 1;
+        return 1;
     }
 
     return 0;
@@ -579,7 +578,7 @@ DEFSETFUNC(setStepEPBp)
     V_ARG(char *,mname);
 
     setBreakPoint (ep->addr, CODE, bptype,
-                  stepBpCB, mname, ep->line);
+                   stepBpCB, mname, ep->line);
     return 1;
 }
 
@@ -593,7 +592,7 @@ DEFSETFUNC(setNextEPBp)
     V_ARG(char *,mname);
 
     setBreakPoint (ep->addr, CODE, bptype,
-                  nextBpCB, mname, ep->line);
+                   nextBpCB, mname, ep->line);
     return 1;
 }
 
@@ -610,12 +609,12 @@ DEFSETFUNC(lineAtAddr)
 
     /* address must be an exact match */
     if (ep->addr == addr) {
-       *line = ep->line;
-       if (block)
-           *block = ep->block ;
-       if (level)
-           *level = ep->level ;
-       return 1;
+        *line = ep->line;
+        if (block)
+            *block = ep->block ;
+        if (level)
+            *level = ep->level ;
+        return 1;
     }
 
     return 0;
@@ -635,12 +634,12 @@ DEFSETFUNC(lineNearAddr)
 
     /* the line in which the address is */
     if (ep->addr <= addr) {
-       *line = ep->line;
-       if (block)
-           *block = ep->block ;
-       if (level)
-           *level = ep->level ;
-       return 1;
+        *line = ep->line;
+        if (block)
+            *block = ep->block ;
+        if (level)
+            *level = ep->level ;
+        return 1;
     }
 
     return 0;
@@ -687,7 +686,7 @@ context *discoverContext (unsigned addr, function *func)
     /* find the asm line number */
     line = 0;
     if (applyToSet(func->afpoints,lineAtAddr,addr,
-                  &line,NULL,NULL))
+                   &line,NULL,NULL))
         currCtxt->asmline = line;
     else
         currCtxt->asmline = -1;
@@ -734,9 +733,9 @@ void simGo (unsigned int gaddr)
        of the program */
     if (!rv)
     {
-               if ( gaddr == 0 )
+        if ( gaddr == 0 )
             gaddr = -1;
-               if ( gaddr == -1 || doingSteps == 1 )
+        if ( gaddr == -1 || doingSteps == 1 )
             goto top ;
     }
 
@@ -978,8 +977,8 @@ static int commonSetUserBp(char *s, context *cctxt, char bpType)
     */
 
     if (!cctxt) {
-       fprintf(stdout,"No symbol table is loaded.  Use the \"file\" command.\n");
-       return 0;
+        fprintf(stdout,"No symbol table is loaded.  Use the \"file\" command.\n");
+        return 0;
     }
     /* white space skip */
     while (*s && isspace(*s)) s++;
@@ -994,22 +993,22 @@ static int commonSetUserBp(char *s, context *cctxt, char bpType)
        the current execution location from the currentContext */
     if (! *s ) {
 
-       /* if current context is known */
-       if (cctxt->func) {
+        /* if current context is known */
+        if (cctxt->func) {
         Dprintf(D_break, ("commonSetUserBp: a) cctxtaddr:%x \n",cctxt->addr));
-           if (srcMode == SRC_CMODE)
-               /* set the break point */
-               setBreakPoint ( cctxt->addr , CODE , bpType , userBpCB ,
-                               cctxt->func->mod->c_name, cctxt->cline);
-           else
-               setBreakPoint ( cctxt->addr , CODE , bpType , userBpCB ,
-                               cctxt->func->mod->asm_name, cctxt->asmline);
+            if (srcMode == SRC_CMODE)
+                /* set the break point */
+                setBreakPoint ( cctxt->addr , CODE , bpType , userBpCB ,
+                                cctxt->func->mod->c_name, cctxt->cline);
+            else
+                setBreakPoint ( cctxt->addr , CODE , bpType , userBpCB ,
+                                cctxt->func->mod->asm_name, cctxt->asmline);
 
-       }
-       else
-           fprintf(stderr,"No default breakpoint address now.\n");
+        }
+        else
+            fprintf(stderr,"No default breakpoint address now.\n");
 
-       goto ret ;
+        goto ret ;
     }
     /* case g) *addr */
     if ( *s == '*' && isdigit(*(s+1)))
@@ -1031,7 +1030,7 @@ static int commonSetUserBp(char *s, context *cctxt, char bpType)
             }
             goto ret ;
         }
-               else
+                else
         {
             int line = func->exitline;
             if ( !applyToSet(func->cfpoints,lineAtAddr,braddr,
@@ -1040,89 +1039,89 @@ static int commonSetUserBp(char *s, context *cctxt, char bpType)
             setBreakPoint ( braddr , CODE , bpType , userBpCB ,
                             func->mod->c_name,line);
         }
-       goto ret ;
+        goto ret ;
     }
     /* case b) lineno */
     /* check if line number */
     if ( !strchr(s,':') && isdigit(*s)) {
-       /* get the lineno */
-       int line = atoi(s) -1;
+        /* get the lineno */
+        int line = atoi(s) -1;
     Dprintf(D_break, ("commonSetUserBp: b) line:%d \n",line));
     if ( line < 0 )
     {
-               fprintf(stdout,"linenumber <= 0\n");
+                fprintf(stdout,"linenumber <= 0\n");
         goto ret;
     }
-       /* if current context not present then we must get the module
-          which has main & set the break point @ line number provided
-          of that module : if current context known then set the bp
-          at the line number given for the current module
-       */
-       if (cctxt->func) {
-           if (!cctxt->func->mod) {
-               if (!applyToSet(functions,funcWithName,"main"))
-                   fprintf(stderr,"Function \"main\" not defined.\n");
-               else
-                   setBPatModLine(func->mod,line, bpType);
-           } else
-               setBPatModLine(cctxt->func->mod,line, bpType);
-       } else {
-               if (list_mod) {
-                       setBPatModLine(list_mod,line, bpType);
-               } else {
-                 fprintf(stdout,"Sdcdb fails to have module symbol context at %d\n", __LINE__);
-               }
-       }
-
-       goto ret;
+        /* if current context not present then we must get the module
+           which has main & set the break point @ line number provided
+           of that module : if current context known then set the bp
+           at the line number given for the current module
+        */
+        if (cctxt->func) {
+            if (!cctxt->func->mod) {
+                if (!applyToSet(functions,funcWithName,"main"))
+                    fprintf(stderr,"Function \"main\" not defined.\n");
+                else
+                    setBPatModLine(func->mod,line, bpType);
+            } else
+                setBPatModLine(cctxt->func->mod,line, bpType);
+        } else {
+                if (list_mod) {
+                        setBPatModLine(list_mod,line, bpType);
+                } else {
+                  fprintf(stdout,"Sdcdb fails to have module symbol context at %d\n", __LINE__);
+                }
+        }
+
+        goto ret;
     }
 
     if ((bp = strchr(s,':'))) {
 
-       module *mod = NULL;
-       *bp = '\0';
-
-       if (srcMode == SRC_CMODE) {
-           if (!applyToSet(modules,moduleWithCName,s,&mod)) {
-               fprintf (stderr,"No source file named %s.\n",s);
-               goto ret;
-           }
-       } else {
-           if (!applyToSet(modules,moduleWithAsmName,s,&mod)) {
-               fprintf (stderr,"No source file named %s.\n",s);
-               goto ret;
-           }
-       }
-
-       /* case c) filename:lineno */
-       if (isdigit(*(bp +1))) {
+        module *mod = NULL;
+        *bp = '\0';
+
+        if (srcMode == SRC_CMODE) {
+            if (!applyToSet(modules,moduleWithCName,s,&mod)) {
+                fprintf (stderr,"No source file named %s.\n",s);
+                goto ret;
+            }
+        } else {
+            if (!applyToSet(modules,moduleWithAsmName,s,&mod)) {
+                fprintf (stderr,"No source file named %s.\n",s);
+                goto ret;
+            }
+        }
+
+        /* case c) filename:lineno */
+        if (isdigit(*(bp +1))) {
         Dprintf(D_break, ("commonSetUserBp: c) line:%d \n",atoi(bp+1)));
-           setBPatModLine (mod,atoi(bp+1)-1,bpType);
-           goto ret;
-
-       }
-       /* case d) filename:function */
-       if (!applyToSet(functions,funcWithNameModule,bp+1,s,&func))
-           fprintf(stderr,"Function \"%s\" not defined.\n",bp+1);
-       else
+            setBPatModLine (mod,atoi(bp+1)-1,bpType);
+            goto ret;
+
+        }
+        /* case d) filename:function */
+        if (!applyToSet(functions,funcWithNameModule,bp+1,s,&func))
+            fprintf(stderr,"Function \"%s\" not defined.\n",bp+1);
+        else
         Dprintf(D_break, ("commonSetUserBp: d) \n"));
-           setBPatModLine (mod,
-                           (srcMode == SRC_CMODE ?
-                            func->entryline :
-                            func->aentryline),bpType);
+            setBPatModLine (mod,
+                            (srcMode == SRC_CMODE ?
+                             func->entryline :
+                             func->aentryline),bpType);
 
-       goto ret;
+        goto ret;
     }
 
     /* case e) function */
     Dprintf(D_break, ("commonSetUserBp: e) \n"));
     if (!applyToSet(functions,funcWithName,s,&func))
-       fprintf(stderr,"Function \"%s\" not defined.\n",s);
+        fprintf(stderr,"Function \"%s\" not defined.\n",s);
     else
-       setBPatModLine(func->mod,
-                      (srcMode == SRC_CMODE ?
-                       func->entryline :
-                       func->aentryline),bpType);
+        setBPatModLine(func->mod,
+                       (srcMode == SRC_CMODE ?
+                        func->entryline :
+                        func->aentryline),bpType);
 
  ret:
     return 0;
@@ -1189,7 +1188,7 @@ int cmdJump (char *s, context *cctxt)
         int line = atoi(s) -1;
         if (!cctxt || !cctxt->func || !cctxt->func->mod)
         {
-                   fprintf(stderr,"Function not defined.\n");
+                    fprintf(stderr,"Function not defined.\n");
             return 0;
         }
         if (line >= cctxt->func->entryline &&
@@ -1200,7 +1199,7 @@ int cmdJump (char *s, context *cctxt)
         }
         if (line >= cctxt->func->mod->ncLines )
         {
-                   fprintf(stderr,"line not in module.\n");
+                    fprintf(stderr,"line not in module.\n");
             return 0;
         }
         fprintf(stdout,"Warning line %d outside actual function.\n",line+1);
@@ -1225,7 +1224,7 @@ int cmdJump (char *s, context *cctxt)
         line = atoi(bp) -1;
         if (line >= mod->ncLines )
         {
-                   fprintf(stderr,"line not in module.\n");
+                    fprintf(stderr,"line not in module.\n");
             return 0;
         }
         if ( mod != cctxt->func->mod ||
@@ -1265,13 +1264,13 @@ int cmdSetOption (char *s, context *cctxt)
 {
     while (*s && isspace(*s)) s++;
     if (strncmp(s,"srcmode",7) == 0 ) {
-       if (srcMode == SRC_CMODE)
-           srcMode = SRC_AMODE;
-       else
-           srcMode = SRC_CMODE;
-       fprintf(stderr,"source mode set to '%s'\n",
-               (srcMode == SRC_CMODE ? "C" : "asm"));
-       return 0;
+        if (srcMode == SRC_CMODE)
+            srcMode = SRC_AMODE;
+        else
+            srcMode = SRC_CMODE;
+        fprintf(stderr,"source mode set to '%s'\n",
+                (srcMode == SRC_CMODE ? "C" : "asm"));
+        return 0;
     }
 
     if (strncmp(s,"listsize ",9) == 0)
@@ -1322,8 +1321,8 @@ int cmdSetOption (char *s, context *cctxt)
 int cmdContinue (char *s, context *cctxt)
 {
     if (STACK_EMPTY(callStack)) {
-       fprintf(stdout,"The program is not being run.\n");
-       return 0;
+        fprintf(stdout,"The program is not being run.\n");
+        return 0;
     }
 
     fprintf(stdout,"Continuing.\n");
@@ -1421,20 +1420,20 @@ int cmdDelUserBp (char *s, context *cctxt)
     while (isspace(*s)) s++;
 
     if (!*s ) {
-       if (userBpPresent) {
-           char buffer[10];
-           fprintf (stdout,"Delete all breakpoints? (y or n) ");
-           fflush(stdout);
-           fgets(buffer,sizeof(buffer),stdin);
-           if (toupper(buffer[0]) == 'Y')
-               deleteUSERbp(-1);
-       }
-       return 0;
+        if (userBpPresent) {
+            char buffer[10];
+            fprintf (stdout,"Delete all breakpoints? (y or n) ");
+            fflush(stdout);
+            fgets(buffer,sizeof(buffer),stdin);
+            if (toupper(buffer[0]) == 'Y')
+                deleteUSERbp(-1);
+        }
+        return 0;
     }
 
     /* determine the break point number */
     if (sscanf(s,"%d",&bpnum) == 1)
-       deleteUSERbp(bpnum);
+        deleteUSERbp(bpnum);
 
     return 0;
 }
@@ -1450,7 +1449,7 @@ int cmdStepi (char *s, context *cctxt)
     else
     {
         doingSteps = 2;
-           simGo(2);
+            simGo(2);
         doingSteps = 0;
         showfull = 1;
     }
@@ -1550,7 +1549,7 @@ int cmdNexti (char *s, context *cctxt)
     else
     {
         doingSteps = 2;
-           simGo(1);
+            simGo(1);
         doingSteps = 0;
         showfull = 1;
     }
@@ -1637,27 +1636,27 @@ int cmdRun (char *s, context *cctxt)
 {
     char buff[10];
     if (STACK_EMPTY(callStack)) {
-       fprintf(stdout,"Starting program\n");
+        fprintf(stdout,"Starting program\n");
     if ( ! simactive )
     {
         fprintf(stdout,"No executable file specified.\nUse the \"file\" command.\n");
         return 0;
     }
     resetHitCount();
-       simGo(0);
+        simGo(0);
     } else {
 
-       fprintf(stdout,
-               "The program being debugged has been started already.\n");
-       fprintf(stdout,"Start it from the beginning? (y or n) ");
-       fflush(stdout);
+        fprintf(stdout,
+                "The program being debugged has been started already.\n");
+        fprintf(stdout,"Start it from the beginning? (y or n) ");
+        fflush(stdout);
 
-       fgets(buff,sizeof(buff),stdin);
-       if (toupper(buff[0]) == 'Y') {
-           simReset();
+        fgets(buff,sizeof(buff),stdin);
+        if (toupper(buff[0]) == 'Y') {
+            simReset();
         resetHitCount();
-           simGo(0);
-       }
+            simGo(0);
+        }
     }
     showfull = 1;
     return 0;
@@ -2002,9 +2001,9 @@ static void infoStack(context *ctxt)
     while ((func = STACK_WALK(callStack))) {
     Dprintf(D_break, ("break: infoStack: %s %p (%p)\n",func->sym->name, w_callStack,p_callStack));
 
-       fprintf(stdout,"#%d  0x%08x in %s () at %s:%d\n",i++,
-               func->laddr,func->sym->name,
-               func->mod->c_name,func->lline+1);
+        fprintf(stdout,"#%d  0x%08x in %s () at %s:%d\n",i++,
+                func->laddr,func->sym->name,
+                func->mod->c_name,func->lline+1);
     }
     if ( !i )
         fprintf(stdout,"no stack.\n");
@@ -2015,8 +2014,8 @@ static void infoStack(context *ctxt)
 /*-----------------------------------------------------------------*/
 int cmdWhere(char *s, context *cctxt)
 {
-       infoStack(cctxt);
-       return 0;
+        infoStack(cctxt);
+        return 0;
 }
 
 
@@ -2030,20 +2029,20 @@ int cmdInfo (char *s, context *cctxt)
 
     /* list all break points */
     if (strncmp(s,"break",5) == 0) {
-       listUSERbp();
-       return 0;
+        listUSERbp();
+        return 0;
     }
 
     /* info frame same as frame */
     if (strcmp(s,"frame") == 0) {
-       cmdFrame (s,cctxt);
-       return 0;
+        cmdFrame (s,cctxt);
+        return 0;
     }
 
     if (strncmp(s,"line",4) == 0) {
     infomode=1;
-       cmdListSrc (s+4,cctxt);
-       return 0;
+        cmdListSrc (s+4,cctxt);
+        return 0;
     }
     if (strncmp(s,"source",6) == 0)
     {
@@ -2092,15 +2091,15 @@ int cmdInfo (char *s, context *cctxt)
     }
     /* info stack display call stack */
     if (strcmp(s,"stack") == 0) {
-       infoStack(cctxt);
+        infoStack(cctxt);
     showfull = 1;
-       return 0;
+        return 0;
     }
 
     /* info stack display call stack */
     if (strcmp(s,"registers") == 0) {
         infoRegisters(0,cctxt);
-           return 0;
+            return 0;
     }
 
     /* info stack display call stack */
@@ -2136,7 +2135,7 @@ int cmdInfo (char *s, context *cctxt)
 int cmdQuit (char *s, context *cctxt)
 {
     if (simactive)
-       closeSimulator();
+        closeSimulator();
     return 1;
 }
 
@@ -2163,16 +2162,16 @@ int cmdListSrc (char *s, context *cctxt)
        FILE:FUNCTION - function in file */
 
     if (*s) {
-       /* case a) LINE */
-       if (isdigit(*s)) {
-           if (!cctxt || !cctxt->func || !cctxt->func->mod) {
-             if (!list_mod) {
-               fprintf(stdout,"Sdcdb fails to have a proper context at %d.\n", __LINE__);
-               return 0;
-             }
-           }
-           else
-             list_mod = cctxt->func->mod;
+        /* case a) LINE */
+        if (isdigit(*s)) {
+            if (!cctxt || !cctxt->func || !cctxt->func->mod) {
+              if (!list_mod) {
+                fprintf(stdout,"Sdcdb fails to have a proper context at %d.\n", __LINE__);
+                return 0;
+              }
+            }
+            else
+              list_mod = cctxt->func->mod;
         pline = strtol(s,&s,10) - 1;
         if (s && (s = strchr(s,',')))
         {
@@ -2183,29 +2182,29 @@ int cmdListSrc (char *s, context *cctxt)
             else
                 llines = listlines;
         }
-       }
-       else {
-           char *bp;
-
-           /* if ':' present then FILE:LINE || FILE:FUNCTION */
-           if ((bp = strchr(s,':'))) {
-               *bp = '\0';
-               bp ++;
-               if (isdigit(*bp)) {
-                   /* FILE:LINE */
-                   list_mod=NULL;  /* bug fix 2-09-02, moduleWithCName expects mod to be null */
-                   if (srcMode == SRC_CMODE) {
-                       if (!applyToSet(modules,moduleWithCName,s,&list_mod)) {
-                           fprintf (stderr,"No c source file named %s.\n",s);
-                           return 0;
-                       }
-                   } else {
-                       if (!applyToSet(modules,moduleWithAsmName,s,&list_mod)) {
-                           fprintf (stderr,"No source file named %s.\n",s);
-                           return 0;
-                       }
-                   }
-                   pline = strtol(bp,&bp,10) - 1;
+        }
+        else {
+            char *bp;
+
+            /* if ':' present then FILE:LINE || FILE:FUNCTION */
+            if ((bp = strchr(s,':'))) {
+                *bp = '\0';
+                bp ++;
+                if (isdigit(*bp)) {
+                    /* FILE:LINE */
+                    list_mod=NULL;  /* bug fix 2-09-02, moduleWithCName expects mod to be null */
+                    if (srcMode == SRC_CMODE) {
+                        if (!applyToSet(modules,moduleWithCName,s,&list_mod)) {
+                            fprintf (stderr,"No c source file named %s.\n",s);
+                            return 0;
+                        }
+                    } else {
+                        if (!applyToSet(modules,moduleWithAsmName,s,&list_mod)) {
+                            fprintf (stderr,"No source file named %s.\n",s);
+                            return 0;
+                        }
+                    }
+                    pline = strtol(bp,&bp,10) - 1;
             if (bp && (bp = strchr(bp,',')))
             {
                 /* FILE:LINE,LASTLINE */
@@ -2215,24 +2214,24 @@ int cmdListSrc (char *s, context *cctxt)
                 else
                     llines = listlines;
             }
-               } else {
-                   /* FILE:FUCTION */
-                   if (!applyToSet(functions,funcWithNameModule,bp,s,&func)) {
-                       fprintf(stdout,"Function \"%s\" not defined.\n",bp);
-                       return 0;
-                   }
-                   list_mod = func->mod;
-                   if (srcMode == SRC_CMODE) {
-                       pline = func->entryline;
-                       llines = func->exitline - func->entryline + 1;
-                   } else {
-                       pline = func->aentryline;
-                       llines = func->aexitline - func->aentryline + 1;
-                   }
-               }
-           }
-           else {
-               /* FUNCTION */
+                } else {
+                    /* FILE:FUCTION */
+                    if (!applyToSet(functions,funcWithNameModule,bp,s,&func)) {
+                        fprintf(stdout,"Function \"%s\" not defined.\n",bp);
+                        return 0;
+                    }
+                    list_mod = func->mod;
+                    if (srcMode == SRC_CMODE) {
+                        pline = func->entryline;
+                        llines = func->exitline - func->entryline + 1;
+                    } else {
+                        pline = func->aentryline;
+                        llines = func->aexitline - func->aentryline + 1;
+                    }
+                }
+            }
+            else {
+                /* FUNCTION */
             if (*s == '\'')
             {
                 /* 'FUNCTION' */
@@ -2243,38 +2242,38 @@ int cmdListSrc (char *s, context *cctxt)
                 }
 
             }
-               if (!applyToSet(functions,funcWithName,s,&func)) {
-                   fprintf(stderr,"Function \"%s\" not defined.\n",s);
-                   return 0;
-               }
-               else {
-                   list_mod = func->mod;
-                   if (srcMode == SRC_CMODE) {
-                       pline = func->entryline;
-                       llines = func->exitline - func->entryline + 1;
-                   } else {
-                       pline = func->aentryline;
-                       llines = func->aexitline - func->aentryline + 1;
-                   }
-               }
-           }
-       }
+                if (!applyToSet(functions,funcWithName,s,&func)) {
+                    fprintf(stderr,"Function \"%s\" not defined.\n",s);
+                    return 0;
+                }
+                else {
+                    list_mod = func->mod;
+                    if (srcMode == SRC_CMODE) {
+                        pline = func->entryline;
+                        llines = func->exitline - func->entryline + 1;
+                    } else {
+                        pline = func->aentryline;
+                        llines = func->aexitline - func->aentryline + 1;
+                    }
+                }
+            }
+        }
     } else {
-       /* if no line specified & we had listed
-          before then continue from that listing */
-       if (currline)
-           pline = currline ;
-       else {
-           if (!cctxt || !cctxt->func || !cctxt->func->mod) {
-             fprintf(stdout,"Missing context at %d. Try list filename:lineno\n", __LINE__);
-             return 0;
-           }
-           list_mod = cctxt->func->mod;
-           if (srcMode == SRC_CMODE)
-               pline = cctxt->cline;
-           else
-               pline = cctxt->asmline;
-       }
+        /* if no line specified & we had listed
+           before then continue from that listing */
+        if (currline)
+            pline = currline ;
+        else {
+            if (!cctxt || !cctxt->func || !cctxt->func->mod) {
+              fprintf(stdout,"Missing context at %d. Try list filename:lineno\n", __LINE__);
+              return 0;
+            }
+            list_mod = cctxt->func->mod;
+            if (srcMode == SRC_CMODE)
+                pline = cctxt->cline;
+            else
+                pline = cctxt->asmline;
+        }
     }
 
     if (!list_mod) {
@@ -2287,12 +2286,12 @@ int cmdListSrc (char *s, context *cctxt)
     if ( infomode )
     {
         unsigned firstaddr , lastaddr ;
-           if ( pline  >= list_mod->ncLines )
+            if ( pline  >= list_mod->ncLines )
             pline = cctxt->cline;
         firstaddr = lastaddr = list_mod->cLines[pline]->addr;
         if (!func && cctxt && cctxt->func )
             func = cctxt->func;
-           fprintf(stdout,"Line %d of \"%s\" starts at address 0x%08x <%s+%d>",
+            fprintf(stdout,"Line %d of \"%s\" starts at address 0x%08x <%s+%d>",
                 pline+1,
                 list_mod->c_name, lastaddr,
                 func ? func->sym->name : "?",
@@ -2320,17 +2319,17 @@ int cmdListSrc (char *s, context *cctxt)
         return 0;
     }
     for ( i = 0 ; i < llines ; i++ ) {
-       if (srcMode == SRC_CMODE) {
-           if ( (pline + i) >= list_mod->ncLines )
-               break;
-           fprintf(stdout,"%d\t%s",pline + i,
-                   list_mod->cLines[pline +i]->src);
-       } else {
-           if ( (pline + i) >= list_mod->nasmLines )
-               break;
-           fprintf(stdout,"%d\t%s",pline + i,
-                   list_mod->asmLines[pline +i]->src);
-       }
+        if (srcMode == SRC_CMODE) {
+            if ( (pline + i) >= list_mod->ncLines )
+                break;
+            fprintf(stdout,"%d\t%s",pline + i,
+                    list_mod->cLines[pline +i]->src);
+        } else {
+            if ( (pline + i) >= list_mod->nasmLines )
+                break;
+            fprintf(stdout,"%d\t%s",pline + i,
+                    list_mod->asmLines[pline +i]->src);
+        }
     }
     currline = pline + i ;
     return 0;
@@ -2354,11 +2353,11 @@ static unsigned long getValBasic(symbol *sym, link *type, char *val)
     if (IS_FLOAT(type))
         v.f = strtod(val,NULL);
     else
-       if (IS_PTR(type))
-           v.val = strtol(val,NULL,0);
-       else
+        if (IS_PTR(type))
+            v.val = strtol(val,NULL,0);
+        else
     {
-           if (IS_INTEGRAL(type))
+            if (IS_INTEGRAL(type))
         {
             link *etype;
             if ( type->next )
@@ -2387,7 +2386,7 @@ static unsigned long getValBasic(symbol *sym, link *type, char *val)
                         v.i.lo = strtol(val,NULL,0);
                 else
                     v.val = strtol(val,NULL,0);
-           }
+            }
         else
             v.val = strtol(val,NULL,0);
     }
@@ -2408,9 +2407,9 @@ static void printFmtInteger(char *deffmt,int fmt, long val,
     };
     static int radixOfFormat[] = { 0 , 2, 8 ,10, 16  };
     static int olenOfSize[]    = { 0 , 3, 6 , 8, 11  };
-       char buf[40];
-       char negative = 0;
-       int charPos = 38;
+        char buf[40];
+        char negative = 0;
+        int charPos = 38;
     int radix;
 
     if ( fmt == FMT_NON || fmt == FMT_DEZ )
@@ -2425,16 +2424,16 @@ static void printFmtInteger(char *deffmt,int fmt, long val,
         negative = 1;
     */
 
-       if (!negative)
-           val = -val;
+        if (!negative)
+            val = -val;
 
-       buf[39] = '\0';
+        buf[39] = '\0';
     while (val <= -radix)
     {
-           buf[charPos--] = digits[-(val % radix)];
-           val = val / radix;
-       }
-       buf[charPos] = digits[-val];
+            buf[charPos--] = digits[-(val % radix)];
+            val = val / radix;
+        }
+        buf[charPos] = digits[-val];
 
     switch ( fmt )
     {
@@ -2464,9 +2463,9 @@ static void printFmtInteger(char *deffmt,int fmt, long val,
             buf[--charPos] = '0';
             break;
     }
-       if (negative) {
-           buf[--charPos] = '-';
-       }
+        if (negative) {
+            buf[--charPos] = '-';
+        }
     fputs(&buf[charPos],stdout);
 }
 
@@ -2490,11 +2489,11 @@ static void printValBasic(symbol *sym, link *type,
     v.val = simGetValue(addr,mem,size);
     /* if this a floating point number then */
     if (IS_FLOAT(type))
-       fprintf(stdout,"%f",v.f);
+        fprintf(stdout,"%f",v.f);
     else
-       if (IS_PTR(type))
-           fprintf(stdout,"0x%*x",size<<1,v.val);
-       else
+        if (IS_PTR(type))
+            fprintf(stdout,"0x%*x",size<<1,v.val);
+        else
         if (IS_INTEGRAL(type))
         {
             link *etype;
@@ -2532,7 +2531,7 @@ static void printValBasic(symbol *sym, link *type,
                         fprintf(stdout,"0x%0*x",size<<1,v.val);
                 }
             }
-           } else
+            } else
             fprintf(stdout,"0x%0*x",size<<1,v.val);
 }
 
@@ -2550,22 +2549,22 @@ static void printValFunc (symbol *sym, int fmt)
 static void printArrayValue (symbol *sym,  link *type,
                              char space, unsigned int addr, int fmt)
 {
-       link *elem_type = type->next;
-       int i;
+        link *elem_type = type->next;
+        int i;
 
-       fprintf(stdout,"{");
-       for (i = 0 ; i < DCL_ELEM(type) ; i++) {
-               if (IS_AGGREGATE(elem_type)) {
-                       printValAggregates(sym,elem_type,space,addr,fmt);
-               } else {
-                       printValBasic(sym,elem_type,space,addr,getSize(elem_type),fmt);
-               }
-               addr += getSize(elem_type);
-               if (i != DCL_ELEM(type) -1)
-                       fprintf(stdout,",");
-       }
+        fprintf(stdout,"{");
+        for (i = 0 ; i < DCL_ELEM(type) ; i++) {
+                if (IS_AGGREGATE(elem_type)) {
+                        printValAggregates(sym,elem_type,space,addr,fmt);
+                } else {
+                        printValBasic(sym,elem_type,space,addr,getSize(elem_type),fmt);
+                }
+                addr += getSize(elem_type);
+                if (i != DCL_ELEM(type) -1)
+                        fprintf(stdout,",");
+        }
 
-       fprintf(stdout,"}");
+        fprintf(stdout,"}");
 }
 
 /*-----------------------------------------------------------------*/
@@ -2574,21 +2573,21 @@ static void printArrayValue (symbol *sym,  link *type,
 static void printStructValue (symbol *sym, link *type,
                               char space, unsigned int addr, int fmt)
 {
-       symbol *fields = SPEC_STRUCT(type)->fields;
+        symbol *fields = SPEC_STRUCT(type)->fields;
     int first = 1;
-       fprintf(stdout," { ");
-       while (fields) {
-               fprintf(stdout,"%s%s = ",(first ? "": ", "),fields->name);
-               first = 0;
+        fprintf(stdout," { ");
+        while (fields) {
+                fprintf(stdout,"%s%s = ",(first ? "": ", "),fields->name);
+                first = 0;
         if (IS_AGGREGATE(fields->type)) {
-                       printValAggregates(fields,fields->type,space, addr, fmt);
-               } else {
-                       printValBasic(fields,fields->type,space,addr,getSize(fields->type), fmt);
-               }
-               addr += getSize(fields->type);
-               fields = fields->next;
-       }
-       fprintf(stdout,"}");
+                        printValAggregates(fields,fields->type,space, addr, fmt);
+                } else {
+                        printValBasic(fields,fields->type,space,addr,getSize(fields->type), fmt);
+                }
+                addr += getSize(fields->type);
+                fields = fields->next;
+        }
+        fprintf(stdout,"}");
 }
 
 /*-----------------------------------------------------------------*/
@@ -2598,15 +2597,15 @@ static void printValAggregates (symbol *sym, link *type,
                                 char space,unsigned int addr, int fmt)
 {
 
-       if (IS_ARRAY(type)) {
-               printArrayValue(sym, type, space, addr, fmt);
-               return ;
-       }
+        if (IS_ARRAY(type)) {
+                printArrayValue(sym, type, space, addr, fmt);
+                return ;
+        }
 
-       if (IS_STRUCT(type)) {
-               printStructValue(sym, type, space, addr, fmt);
-               return;
-       }
+        if (IS_STRUCT(type)) {
+                printStructValue(sym, type, space, addr, fmt);
+                return;
+        }
 }
 
 /*-----------------------------------------------------------------*/
@@ -2618,7 +2617,7 @@ static int printOrSetSymValue (symbol *sym, context *cctxt,
 {
     static char fmtChar[] = " todx ";
     static int stack = 1;
-       symbol *fields;
+        symbol *fields;
     link *type;
     unsigned int  addr;
     int size, n;
@@ -2735,7 +2734,7 @@ static int printOrSetSymValue (symbol *sym, context *cctxt,
     /* arrays & structures first */
     if (IS_AGGREGATE(type))
     {
-           if ( val )
+            if ( val )
         {
             fprintf(stdout,"Cannot set/compare aggregate variable\n");
             return 1;
@@ -2744,17 +2743,17 @@ static int printOrSetSymValue (symbol *sym, context *cctxt,
             printValAggregates(sym,type,sym->addrspace,addr,fmt);
     }
     else
-       /* functions */
-       if (IS_FUNC(type))
+        /* functions */
+        if (IS_FUNC(type))
     {
-           if ( !val )
+            if ( !val )
             printValFunc(sym,fmt);
         else
             return 1;
     }
-       else
+        else
     {
-           if ( val )
+            if ( val )
         {
             unsigned long newval;
             newval = getValBasic(sym,type,val);
@@ -2790,7 +2789,7 @@ static int printOrSetSymValue (symbol *sym, context *cctxt,
             printValBasic(sym,type,sym->addrspace,addr,size,fmt);
     }
     if ( flg > 0 ) fprintf(stdout,"\n");
-       return 0;
+        return 0;
 }
 
 /*-----------------------------------------------------------------*/
@@ -2802,16 +2801,16 @@ static void printStructInfo (structdef *sdef)
     int i = 0 ;
 
     while (field) {
-       i += field->offset;
-       field = field->next;
+        i += field->offset;
+        field = field->next;
     }
 
     fprintf(stdout,"%s %s {\n",(i ? "struct" : "union" ), sdef->tag);
     field = sdef->fields;
     while (field) {
-       printTypeInfo (field->type);
-       fprintf(stdout," %s ;\n",field->name);
-       field = field->next ;
+        printTypeInfo (field->type);
+        fprintf(stdout," %s ;\n",field->name);
+        field = field->next ;
     }
 
     fprintf(stdout,"}\n");
@@ -2824,72 +2823,72 @@ static void printStructInfo (structdef *sdef)
 static void printTypeInfo(link *p)
 {
     if (!p)
-       return ;
+        return ;
 
     if (IS_DECL(p)) {
-       switch (DCL_TYPE(p))  {
-       case FUNCTION:
-           printTypeInfo (p->next);
-           fprintf(stdout,"()");
-           break;
-       case ARRAY:
-           printTypeInfo (p->next);
-           fprintf(stdout,"[%d]",DCL_ELEM(p));
-           break;
-
-       case IPOINTER:
-       case PPOINTER:
-       case POINTER:
-           printTypeInfo (p->next);
-           fprintf(stdout,"(_near *)");
-           break;
-
-       case FPOINTER:
-           printTypeInfo (p->next);
-           fprintf(stdout,"(_xdata *)");
-           break;
-
-       case CPOINTER:
-           printTypeInfo( p->next);
-           fprintf(stdout,"(_code *)");
-           break;
-
-       case GPOINTER:
-           printTypeInfo( p->next);
-           fprintf(stdout,"(_generic *)");
-           break;
-       }
+        switch (DCL_TYPE(p))  {
+        case FUNCTION:
+            printTypeInfo (p->next);
+            fprintf(stdout,"()");
+            break;
+        case ARRAY:
+            printTypeInfo (p->next);
+            fprintf(stdout,"[%d]",DCL_ELEM(p));
+            break;
+
+        case IPOINTER:
+        case PPOINTER:
+        case POINTER:
+            printTypeInfo (p->next);
+            fprintf(stdout,"(_near *)");
+            break;
+
+        case FPOINTER:
+            printTypeInfo (p->next);
+            fprintf(stdout,"(_xdata *)");
+            break;
+
+        case CPOINTER:
+            printTypeInfo( p->next);
+            fprintf(stdout,"(_code *)");
+            break;
+
+        case GPOINTER:
+            printTypeInfo( p->next);
+            fprintf(stdout,"(_generic *)");
+            break;
+        }
     } else {
-       switch (SPEC_NOUN(p)) { /* depending on the specifier type */
-       case V_INT:
-           (IS_LONG(p) ? fputs("long ",stdout) :
-            ( IS_SHORT(p) ? fputs("short ",stdout) :
-              fputs("int ",stdout))) ;
-           break;
-       case V_FLOAT:
-            fputs("float ",stdout);
-            break;
+        switch (SPEC_NOUN(p)) { /* depending on the specifier type */
+        case V_INT:
+            (IS_LONG(p) ? fputs("long ",stdout) :
+             ( IS_SHORT(p) ? fputs("short ",stdout) :
+               fputs("int ",stdout))) ;
+            break;
+        case V_FLOAT:
+             fputs("float ",stdout);
+             break;
 
-       case V_CHAR:
-           fputs ("char ",stdout);
-           break;
+        case V_CHAR:
+            fputs ("char ",stdout);
+            break;
 
-       case V_VOID:
-           fputs("void ",stdout);
-           break;
+        case V_VOID:
+            fputs("void ",stdout);
+            break;
 
-       case V_STRUCT:
-           printStructInfo (SPEC_STRUCT(p));
-           break;
+        case V_STRUCT:
+            printStructInfo (SPEC_STRUCT(p));
+            break;
 
-       case V_SBIT:
-           fputs("sbit ",stdout);
-           break;
+        case V_SBIT:
+            fputs("sbit ",stdout);
+            break;
 
-       case V_BIT:
-           fprintf(stdout,": %d" ,SPEC_BLEN(p));
-           break;
-       }
+        case V_BIT:
+            fprintf(stdout,": %d" ,SPEC_BLEN(p));
+            break;
+        }
     }
 }
 
@@ -3080,12 +3079,12 @@ int cmdPrintType (char *s, context *cctxt)
     *bp = '\0';
 
     if ((sym = symLookup(s,cctxt))) {
-       printTypeInfo(sym->type);
-       fprintf(stdout,"\n");
+        printTypeInfo(sym->type);
+        fprintf(stdout,"\n");
     } else {
-       fprintf(stdout,
-               "No symbol \"%s\" in current context.\n",
-               s);
+        fprintf(stdout,
+                "No symbol \"%s\" in current context.\n",
+                s);
     }
     return 0;
 }
@@ -3108,8 +3107,8 @@ int cmdClrUserBp (char *s, context *cctxt)
     */
 
     if (!cctxt) {
-       fprintf(stdout,"No symbol table is loaded.  Use the \"file\" command.\n");
-       return 0;
+        fprintf(stdout,"No symbol table is loaded.  Use the \"file\" command.\n");
+        return 0;
     }
 
     /* white space skip */
@@ -3125,71 +3124,71 @@ int cmdClrUserBp (char *s, context *cctxt)
        the current execution location from the currentContext */
     if (! *s ) {
 
-       /* if current context is known */
-       if (cctxt->func)
-           /* clear the break point @ current location */
-           clearUSERbp (cctxt->addr);
-       else
-           fprintf(stderr,"No default breakpoint address now.\n");
+        /* if current context is known */
+        if (cctxt->func)
+            /* clear the break point @ current location */
+            clearUSERbp (cctxt->addr);
+        else
+            fprintf(stderr,"No default breakpoint address now.\n");
 
-       goto ret ;
+        goto ret ;
     }
 
     /* case b) lineno */
     /* check if line number */
     if (isdigit(*s)) {
-       /* get the lineno */
-       int line = atoi(s);
-
-       /* if current context not present then we must get the module
-          which has main & set the break point @ line number provided
-          of that module : if current context known then set the bp
-          at the line number given for the current module
-       */
-       if (cctxt->func) {
-           if (!cctxt->func->mod) {
-               if (!applyToSet(functions,funcWithName,"main"))
-                   fprintf(stderr,"Function \"main\" not defined.\n");
-               else
-                   clearBPatModLine(func->mod,line);
-           } else
-               clearBPatModLine(cctxt->func->mod,line);
-       }
-
-       goto ret;
+        /* get the lineno */
+        int line = atoi(s);
+
+        /* if current context not present then we must get the module
+           which has main & set the break point @ line number provided
+           of that module : if current context known then set the bp
+           at the line number given for the current module
+        */
+        if (cctxt->func) {
+            if (!cctxt->func->mod) {
+                if (!applyToSet(functions,funcWithName,"main"))
+                    fprintf(stderr,"Function \"main\" not defined.\n");
+                else
+                    clearBPatModLine(func->mod,line);
+            } else
+                clearBPatModLine(cctxt->func->mod,line);
+        }
+
+        goto ret;
     }
 
     if ((bp = strchr(s,':'))) {
 
-       module *mod = NULL;
-       *bp = '\0';
+        module *mod = NULL;
+        *bp = '\0';
 
-       if (!applyToSet(modules,moduleWithCName,s,&mod)) {
-           fprintf (stderr,"No source file named %s.\n",s);
-           goto ret;
-       }
+        if (!applyToSet(modules,moduleWithCName,s,&mod)) {
+            fprintf (stderr,"No source file named %s.\n",s);
+            goto ret;
+        }
 
-       /* case c) filename:lineno */
-       if (isdigit(*(bp +1))) {
+        /* case c) filename:lineno */
+        if (isdigit(*(bp +1))) {
 
-           clearBPatModLine (mod,atoi(bp+1));
-           goto ret;
+            clearBPatModLine (mod,atoi(bp+1));
+            goto ret;
 
-       }
-       /* case d) filename:function */
-       if (!applyToSet(functions,funcWithNameModule,bp+1,s,&func))
-           fprintf(stderr,"Function \"%s\" not defined.\n",bp+1);
-       else
-           clearBPatModLine (mod,func->entryline);
+        }
+        /* case d) filename:function */
+        if (!applyToSet(functions,funcWithNameModule,bp+1,s,&func))
+            fprintf(stderr,"Function \"%s\" not defined.\n",bp+1);
+        else
+            clearBPatModLine (mod,func->entryline);
 
-       goto ret;
+        goto ret;
     }
 
     /* case e) function */
     if (!applyToSet(functions,funcWithName,s,&func))
-       fprintf(stderr,"Function \"%s\" not defined.\n",s);
+        fprintf(stderr,"Function \"%s\" not defined.\n",s);
     else
-       clearBPatModLine(func->mod,func->entryline);
+        clearBPatModLine(func->mod,func->entryline);
 
  ret:
     return 0;
@@ -3282,7 +3281,7 @@ int cmdUp(char *s, context *cctxt)
         currentFrame++ ;
 
     printFrame();
-       return 0;
+        return 0;
 }
 
 /*-----------------------------------------------------------------*/
@@ -3297,7 +3296,7 @@ int cmdDown(char *s, context *cctxt)
         currentFrame-- ;
 
     printFrame();
-       return 0;
+        return 0;
 }
 /*-----------------------------------------------------------------*/
 /* cmdFrame - Frame command                                        */
@@ -3320,18 +3319,18 @@ int cmdFrame (char *s, context *cctxt)
 int cmdFinish (char *s, context *ctxt)
 {
     if (STACK_EMPTY(callStack)) {
-       fprintf(stdout,"The program is not running.\n");
-       return 0;
+        fprintf(stdout,"The program is not running.\n");
+        return 0;
     }
 
     if (srcMode == SRC_CMODE) {
-       setBreakPoint (ctxt->func->sym->eaddr, CODE, STEP,
-                      stepBpCB, ctxt->func->mod->c_name,
-                      ctxt->func->exitline);
+        setBreakPoint (ctxt->func->sym->eaddr, CODE, STEP,
+                       stepBpCB, ctxt->func->mod->c_name,
+                       ctxt->func->exitline);
     } else {
-       setBreakPoint (ctxt->func->sym->eaddr, CODE, STEP,
-                      stepBpCB, ctxt->func->mod->asm_name,
-                      ctxt->func->aexitline);
+        setBreakPoint (ctxt->func->sym->eaddr, CODE, STEP,
+                       stepBpCB, ctxt->func->mod->asm_name,
+                       ctxt->func->aexitline);
     }
 
     simGo(-1);
@@ -3350,13 +3349,13 @@ int cmdShow (char *s, context *cctxt)
     while (*s && isspace(*s)) s++ ;
 
     if (strcmp(s,"copying") == 0) {
-       fputs(copying,stdout);
-       return 0;
+        fputs(copying,stdout);
+        return 0;
     }
 
     if (strcmp(s,"warranty") == 0) {
-       fputs(warranty,stdout);
-       return 0;
+        fputs(warranty,stdout);
+        return 0;
     }
 
     return 0;
index 5829dc564f300fd83ab08044c2ed157ef6e4a756..41a46eb963e7d5d960eb95fc0f6397177e1d540c 100644 (file)
@@ -1,24 +1,24 @@
 /*-------------------------------------------------------------------------
   cmd.h - header  file for debugger command execution
-             Written By -  Sandeep Dutta . sandeep.dutta@usa.net (1999)
+        Written By -  Sandeep Dutta . sandeep.dutta@usa.net (1999)
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
    Free Software Foundation; either version 2, or (at your option) any
    later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-   
+
    In other words, you are welcome to use, share and improve this program.
    You are forbidden to forbid anyone else to use, share and improve
-   what you give them.   Help stamp out software-hoarding!  
+   what you give them.   Help stamp out software-hoarding!
 -------------------------------------------------------------------------*/
 
 #ifndef SDCDB_CMD_H
index 66c0d46832148094dc73366a347fa6d8557799b6..6c1d610c1c6956b2edc63175f6b656724e669a2a 100644 (file)
@@ -569,7 +569,7 @@ static void functionPoints ()
              ep = setNextItem(mod->cfpoints))
         {
             if (ep->addr >= sym->addr &&
-                ep->addr <= sym->eaddr ) 
+                ep->addr <= sym->eaddr )
             {
                 addSet(&func->cfpoints,ep);
             }
@@ -750,7 +750,7 @@ int cmdHelp (char *s, context *cctxt)
     }
     else if (*s)
     {
-        for (i = 0 ; i < (sizeof(cmdTab)/sizeof(struct cmdtab)) ; i++) 
+        for (i = 0 ; i < (sizeof(cmdTab)/sizeof(struct cmdtab)) ; i++)
         {
             if ((cmdTab[i].htxt) && !strcmp(cmdTab[i].cmd,s))
             {
@@ -769,7 +769,7 @@ int cmdHelp (char *s, context *cctxt)
     for (i = 0 ; i < (sizeof(cmdTab)/sizeof(struct cmdtab)) ; i++) {
 
       /* command string matches */
-      
+
       if ((cmdTab[i].htxt) && (i >= startline))
         fprintf(stdout,"%s",cmdTab[i].htxt);
       if (i == endline)
@@ -904,14 +904,14 @@ static void commandLoop(FILE *cmdfile)
 {
     char *line, save_ch, *s;
     actualcmdfile = cmdfile;
-    while (1) 
+    while (1)
     {
         if ( cmdfile == stdin )
         {
             if (sim_cmd_mode)
                 printf("(sim) ");
             else
-                fprintf(stdout,"(sdcdb) ");        
+                fprintf(stdout,"(sdcdb) ");
             fflush(stdout);
         }
 
@@ -1125,6 +1125,7 @@ sigintr(int sig)
         sendSim("stop\n");
 }
 
+#ifndef _WIN32
 /* the only child can be the simulator */
 static void sigchld(int sig)
 {
@@ -1134,23 +1135,27 @@ static void sigchld(int sig)
     /* if ( retpid == simPid ) */
     simactive = 0;
 }
+#endif
 
 static void
 setsignals()
 {
-    signal(SIGHUP , SIG_IGN);          
-    signal(SIGCONT, SIG_IGN);          
-    signal(SIGINT , sigintr ); 
-    signal(SIGTERM, bad_signal);       
+    signal(SIGINT , sigintr );
+    signal(SIGABRT, bad_signal);
+    signal(SIGTERM, bad_signal);
+
+#ifndef _WIN32
+    signal(SIGHUP , SIG_IGN);
+    signal(SIGCONT, SIG_IGN);
     signal(SIGCHLD, sigchld );
 
-    signal(SIGABRT, bad_signal);
     signal(SIGALRM, bad_signal);
     //signal(SIGFPE,  bad_signal);
     //signal(SIGILL,  bad_signal);
     signal(SIGPIPE, bad_signal);
     signal(SIGQUIT, bad_signal);
     //signal(SIGSEGV, bad_signal);
+#endif
 }
 
 /*-----------------------------------------------------------------*/
index 9e1268e2ab60ece5f5c0061ecc2fd6153832577e..8328e17855db9494985c57092b199897ca840cc7 100644 (file)
@@ -1,24 +1,24 @@
 /*-------------------------------------------------------------------------
   sdcdb.h - Header file used by ALL source files for the debugger
-             Written By -  Sandeep Dutta . sandeep.dutta@usa.net (1999)
+        Written By -  Sandeep Dutta . sandeep.dutta@usa.net (1999)
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
    Free Software Foundation; either version 2, or (at your option) any
    later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-   
+
    In other words, you are welcome to use, share and improve this program.
    You are forbidden to forbid anyone else to use, share and improve
-   what you give them.   Help stamp out software-hoarding!  
+   what you give them.   Help stamp out software-hoarding!
 -------------------------------------------------------------------------*/
 
 #ifndef  SDCDB_H
@@ -62,18 +62,18 @@ typedef short bool;
 #define min(a,b) (a < b ? a : b)
 #endif
 
-/* 
+/*
  * #ifndef ALLOC
- * #define  ALLOC(x,sz) if (!(x = calloc(1, sz)))                          \
+ * #define  ALLOC(x,sz) if (!(x = calloc(1, sz)))                       \
  *          {                                                           \
- *             fprintf(stderr,"sdcdb: out of memory\n"); \
+ *             fprintf(stderr,"sdcdb: out of memory\n");                \
  *             exit (1);                                                \
  *          }
  * #endif
  * #ifndef ALLOC_ATOMIC
  * #define ALLOC_ATOMIC(x,sz)   if (!(x = calloc(1, sz)))   \
  *          {                                               \
- *             fprintf(stderr,"sdcdb: out of memory\n"); \
+ *             fprintf(stderr,"sdcdb: out of memory\n");    \
  *             exit (1);                                    \
  *          }
  * #endif
@@ -95,7 +95,7 @@ typedef short bool;
 
 #define  STACK_FULL(stack)    ((p_##stack) <= stack )
 #define  STACK_EMPTY(stack)   ((p_##stack) >= (stack +      \
-                              sizeof(stack)/sizeof(*stack)) )  
+                              sizeof(stack)/sizeof(*stack)) )
 
 #define  STACK_PUSH_(stack,x) (*--p_##stack = (x))
 #define  STACK_POP_(stack)    (*p_##stack++)
@@ -124,7 +124,7 @@ typedef short bool;
 #define  STACK_STARTWALK(stack)   (w_##stack = p_##stack)
 
 #define  STACK_WALK(stack)    (w_##stack >= (stack + sizeof(stack)/sizeof(*stack)) \
-                              ? NULL : *w_##stack++ )
+                               ? NULL : *w_##stack++ )
 
 #include "src/SDCCbitv.h"
 
@@ -156,14 +156,14 @@ typedef struct srcLine
     char     *src ;
 
 } srcLine ;
-    
+
 /*-----------------------------------------------------------------*/
 /*                     structure for cdb record                    */
 /*-----------------------------------------------------------------*/
 typedef struct  cdbrecs {
     char type ;               /* type of line */
     char *line;               /* contents of line */
-    struct cdbrecs *next;     /* next in chain */    
+    struct cdbrecs *next;     /* next in chain */
 } cdbrecs ;
 
 /*-----------------------------------------------------------------*/
@@ -177,9 +177,9 @@ typedef struct module {
     char *asm_name;          /* asm file name  */
     int   ncLines;           /* number of lines in this module */
     int   nasmLines;         /* # of lines in the assembler file */
-    srcLine  **cLines;       /* actual source lines */    
+    srcLine  **cLines;       /* actual source lines */
     srcLine  **asmLines;     /* actual assembler source lines*/
-    set       *cfpoints;     /* set of double line execution points */   
+    set       *cfpoints;     /* set of double line execution points */
 } module;
 
 /*-----------------------------------------------------------------*/
@@ -191,19 +191,19 @@ typedef struct exePoint
     int      line  ;
     short    block , level ;
 } exePoint ;
+
 /*-----------------------------------------------------------------*/
 /*                   definition for a function                     */
 /*-----------------------------------------------------------------*/
 typedef struct function {
-    struct symbol  *sym     ;/* pointer to symbol for function */ 
-    char           *modName ;/* module name */            
-    module         *mod     ;/* module for this function */     
+    struct symbol  *sym     ;/* pointer to symbol for function */
+    char           *modName ;/* module name */
+    module         *mod     ;/* module for this function */
     int        entryline    ;/* first line in the function */
     int        aentryline   ;
     int        exitline     ;/* last line in the function  */
     int        aexitline    ;
-    set       *cfpoints     ;/* set of all C execution points in func */   
+    set       *cfpoints     ;/* set of all C execution points in func   */
     set       *afpoints     ;/* set of all ASM execution points in func */
     unsigned   int laddr    ;/* last executed address                   */
     int        lline        ;/* last executed linenumber                */
@@ -223,7 +223,7 @@ typedef struct linkrec {
 /*-----------------------------------------------------------------*/
 /*                       program context                           */
 /*-----------------------------------------------------------------*/
-typedef struct context {    
+typedef struct context {
     function *func;           /* current function we are in */
     char     *modName;        /* name of the module         */
     unsigned int addr ;       /* current pc                 */
index 6eb859cadf3c1ae26fdaca38edff9eb693118d5c..a9e67b7234b3b57c42ffc78532f7b90e5812c35b 100644 (file)
@@ -1,29 +1,36 @@
 /*-------------------------------------------------------------------------
   simi.c - source file for simulator interaction
-
-             Written By -  Sandeep Dutta . sandeep.dutta@usa.net (1999)
+        Written By -  Sandeep Dutta . sandeep.dutta@usa.net (1999)
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
    Free Software Foundation; either version 2, or (at your option) any
    later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-   
+
    In other words, you are welcome to use, share and improve this program.
    You are forbidden to forbid anyone else to use, share and improve
-   what you give them.   Help stamp out software-hoarding!  
+   what you give them.   Help stamp out software-hoarding!
 -------------------------------------------------------------------------*/
 #include "sdcdb.h"
 #include "simi.h"
+#include "newalloc.h"
 
+#ifdef _WIN32
+#include <windows.h>
+#include <winsock2.h>
+#include <signal.h>
+#include <io.h>
+#include <fcntl.h>
+#else
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/types.h>
 #include <sys/socket.h>
 #else
 #error "Cannot build debugger without socket support"
 #endif
+#endif
+
 FILE *simin ; /* stream for simulator input */
 FILE *simout; /* stream for simulator output */
 
+#ifdef _WIN32
+SOCKET sock = INVALID_SOCKET;
+PROCESS_INFORMATION *simPid = NULL;
+#else
 int sock = -1; /* socket descriptor to comm with simulator */
 pid_t simPid = -1;
+#endif
 static char simibuff[MAX_SIM_BUFF];    /* sim buffer       */
 static char regBuff[MAX_SIM_BUFF];
 static char *sbp = simibuff;           /* simulator buffer pointer */
@@ -113,7 +127,7 @@ static char *getMemCache(unsigned int addr,int cachenum, int size)
 /*-----------------------------------------------------------------*/
 static void invalidateCache( int cachenum )
 {
-    memCache[cachenum].size = 0;  
+    memCache[cachenum].size = 0;
 }
 
 /*-----------------------------------------------------------------*/
@@ -138,11 +152,197 @@ Dprintf(D_simi, ("simi: waitForSim start(%d)\n", timeout_ms));
 /*-----------------------------------------------------------------*/
 /* openSimulator - create a pipe to talk to simulator              */
 /*-----------------------------------------------------------------*/
+#ifdef _WIN32
+char *argsToCmdLine(char **args, int nargs)
+{
+#define CHUNCK  256
+    int i;
+    int cmdPos = 0;
+    char *cmd = Safe_malloc(CHUNCK);
+    int cmdLen = CHUNCK;
+
+    for (i = 0; i < nargs; i++)
+    {
+        int quote = 0;
+        int argLen = strlen(args[i]);
+
+        if (NULL != strchr(args[i], ' '))
+        {
+            quote = 1;
+            argLen += 2;
+        }
+
+        if (0 < nargs)
+            ++argLen;
+
+        if (argLen >= cmdLen)
+        {
+            do
+            {
+                cmdLen += cmdLen;
+            }
+            while (argLen >= cmdLen);
+            cmd = Safe_realloc(cmd, cmdLen);
+        }
+
+        if (0 < nargs)
+        {
+            cmd[cmdPos++] = ' ';
+            --argLen;
+        }
+
+        if (quote)
+        {
+            cmd[cmdPos++] = '"';
+            --argLen;
+        }
+
+        memcpy(&cmd[cmdPos], args[i], argLen);
+        cmdPos += argLen;
+
+        if (quote)
+            cmd[cmdPos++] = '"';
+    }
+
+    return cmd;
+}
+
+PROCESS_INFORMATION *execSimulator(char **args, int nargs)
+{
+    STARTUPINFO si;
+    static PROCESS_INFORMATION pi;
+    char *cmdLine = argsToCmdLine(args, nargs);
+
+    memset(&si, 0, sizeof(si));
+    si.cb = sizeof(si);
+    memset(&pi, 0, sizeof(pi));
+
+    // Start the child process.
+    if (!CreateProcess(NULL,   // No module name (use command line)
+        cmdLine, // Command line
+        NULL,           // Process handle not inheritable
+        NULL,           // Thread handle not inheritable
+        FALSE,          // Set handle inheritance to FALSE
+        0,              // No creation flags
+        NULL,           // Use parent's environment block
+        NULL,           // Use parent's starting directory
+        &si,            // Pointer to STARTUPINFO structure
+        &pi)            // Pointer to PROCESS_INFORMATION structure
+    )
+    {
+        Safe_free(cmdLine);
+        printf( "CreateProcess failed (%d).\n", GetLastError() );
+        return NULL;
+    }
+
+    Safe_free(cmdLine);
+    return &pi;
+}
+
+void openSimulator (char **args, int nargs)
+{
+    struct sockaddr_in sin;
+    int retry = 0;
+    int i;
+    int fh;
+    Dprintf(D_simi, ("simi: openSimulator\n"));
+#ifdef SDCDB_DEBUG
+    if (D_simi & sdcdbDebug)
+    {
+        printf("simi: openSimulator: ");
+        for (i=0; i < nargs; i++ )
+        {
+            printf("arg%d: %s ",i,args[i]);
+        }
+        printf("\n");
+    }
+#endif
+    invalidateCache(XMEM_CACHE);
+    invalidateCache(IMEM_CACHE);
+    invalidateCache(SREG_CACHE);
+
+ try_connect:
+    sock = WSASocket(PF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, 0);
+
+    memset(&sin,0,sizeof(sin));
+    sin.sin_family = AF_INET;
+    sin.sin_addr.s_addr = inet_addr("127.0.0.1");
+    sin.sin_port = htons(9756);
+
+    /* connect to the simulator */
+    if (INVALID_SOCKET == connect(sock,(struct sockaddr *) &sin, sizeof(sin)))
+    {
+        /* if failed then wait 1 second & try again
+           do this for 10 secs only */
+        if (retry < 10)
+        {
+            if ( !retry )
+                simPid = execSimulator(args, nargs);
+            retry ++;
+            Sleep(1000);
+            goto try_connect;
+        }
+        perror("connect failed :");
+        exit(1);
+    }
+    fh = _open_osfhandle((intptr_t)socket, _O_TEXT);
+    if (-1 == fh)
+    {
+        fprintf(stderr, "cannot _open_osfhandle\n");
+        exit(1);
+    }
+
+    /* go the socket now turn it into a file handle */
+    if (!(simin = fdopen(sock,"r")))
+    {
+        fprintf(stderr,"cannot open socket for read\n");
+        exit(1);
+    }
+
+    fh = _open_osfhandle((intptr_t)socket, _O_TEXT);
+    if (-1 == fh)
+    {
+        fprintf(stderr, "cannot _open_osfhandle\n");
+        exit(1);
+    }
+
+    if (!(simout = fdopen(sock,"w")))
+    {
+        fprintf(stderr,"cannot open socket for write\n");
+        exit(1);
+    }
+    /* now that we have opened, wait for the prompt */
+    waitForSim(200,NULL);
+    simactive = 1;
+}
+#else
+int execSimulator(char **args, int nargs)
+{
+    if ((simPid = fork()))
+    {
+        Dprintf(D_simi, ("simi: simulator pid %d\n",(int) simPid));
+    }
+    else
+    {
+        /* we are in the child process : start the simulator */
+        signal(SIGINT , SIG_IGN );
+        signal(SIGABRT, SIG_IGN );
+        signal(SIGHUP , SIG_IGN );
+        signal(SIGCHLD, SIG_IGN );
+
+        if (execvp(args[0],args) < 0)
+        {
+            perror("cannot exec simulator");
+            exit(1);
+        }
+    }
+}
+
 void openSimulator (char **args, int nargs)
 {
-    struct sockaddr_in sin;     
+    struct sockaddr_in sin;
     int retry = 0;
-    int i ;
+    int i;
     Dprintf(D_simi, ("simi: openSimulator\n"));
 #ifdef SDCDB_DEBUG
     if (D_simi & sdcdbDebug)
@@ -158,61 +358,51 @@ void openSimulator (char **args, int nargs)
     invalidateCache(XMEM_CACHE);
     invalidateCache(IMEM_CACHE);
     invalidateCache(SREG_CACHE);
-    
+
  try_connect:
     sock = socket(AF_INET,SOCK_STREAM,0);
-    
+
     memset(&sin,0,sizeof(sin));
     sin.sin_family = AF_INET;
     sin.sin_addr.s_addr = inet_addr("127.0.0.1");
     sin.sin_port = htons(9756);
-    
+
     /* connect to the simulator */
-    if (connect(sock,(struct sockaddr *) &sin, sizeof(sin)) < 0) {
-       /* if failed then wait 1 second & try again
-          do this for 10 secs only */
-       if (retry < 10) {
-        if ( !retry )
+    if (connect(sock,(struct sockaddr *) &sin, sizeof(sin)) < 0)
+    {
+        /* if failed then wait 1 second & try again
+           do this for 10 secs only */
+        if (retry < 10)
         {
-            /* fork and start the simulator as a subprocess */
-            if ((simPid = fork())) {
-                Dprintf(D_simi, ("simi: simulator pid %d\n",(int) simPid));
-            }
-            else {
-                /* we are in the child process : start the simulator */
-                signal(SIGHUP , SIG_IGN );
-                signal(SIGINT , SIG_IGN );
-                signal(SIGABRT, SIG_IGN );
-                signal(SIGCHLD, SIG_IGN );
-
-                if (execvp(args[0],args) < 0) {
-                    perror("cannot exec simulator");
-                    exit(1);
-                }
+            if ( !retry )
+            {
+                simPid = execSimulator(args, nargs);
             }
+            retry ++;
+            sleep (1);
+            goto try_connect;
         }
-           retry ++;
-        sleep (1);
-           goto try_connect;
-       }
-       perror("connect failed :");
-       exit(1);
+        perror("connect failed :");
+        exit(1);
     }
     /* go the socket now turn it into a file handle */
-    if (!(simin = fdopen(sock,"r"))) {
-       fprintf(stderr,"cannot open socket for read\n");
-       exit(1);
+    if (!(simin = fdopen(sock,"r")))
+    {
+        fprintf(stderr,"cannot open socket for read\n");
+        exit(1);
     }
 
-    if (!(simout = fdopen(sock,"w"))) {
-       fprintf(stderr,"cannot open socket for write\n");
-       exit(1);
+    if (!(simout = fdopen(sock,"w")))
+    {
+        fprintf(stderr,"cannot open socket for write\n");
+        exit(1);
     }
-
     /* now that we have opened, wait for the prompt */
     waitForSim(200,NULL);
     simactive = 1;
 }
+#endif
+
 /*-----------------------------------------------------------------*/
 /* simResponse - returns buffer to simulator's response            */
 /*-----------------------------------------------------------------*/
@@ -226,7 +416,7 @@ char *simResponse()
 /*-----------------------------------------------------------------*/
 void sendSim(char *s)
 {
-    if ( ! simout ) 
+    if ( ! simout )
         return;
 
     Dprintf(D_simi, ("simi: sendSim-->%s", s));  // s has LF at end already
@@ -235,7 +425,7 @@ void sendSim(char *s)
 }
 
 
-static int getMemString(char *buffer, char wrflag, 
+static int getMemString(char *buffer, char wrflag,
                         unsigned int *addr, char mem, int size )
 {
     int cachenr = NMEM_CACHE;
@@ -248,7 +438,7 @@ static int getMemString(char *buffer, char wrflag,
         cmd = "dump";
     buffer[0] = '\0' ;
 
-    switch (mem) 
+    switch (mem)
     {
         case 'A': /* External stack */
         case 'F': /* External ram */
@@ -259,7 +449,7 @@ static int getMemString(char *buffer, char wrflag,
         case 'D': /* Code / static segment */
             prefix = "rom";
             break;
-        case 'B': /* Internal stack */  
+        case 'B': /* Internal stack */
         case 'E': /* Internal ram (lower 128) bytes */
         case 'G': /* Internal ram */
             prefix = "iram";
@@ -279,14 +469,14 @@ static int getMemString(char *buffer, char wrflag,
             prefix = "sfr" ;
             cachenr = SREG_CACHE;
             break;
-        case 'R': /* Register space */ 
+        case 'R': /* Register space */
             prefix = "iram";
             /* get register bank */
-            cachenr = simGetValue (0xd0,'I',1); 
+            cachenr = simGetValue (0xd0,'I',1);
             *addr  += cachenr & 0x18 ;
             cachenr = IMEM_CACHE;
             break;
-        default: 
+        default:
         case 'Z': /* undefined space code */
             return cachenr;
     }
@@ -303,7 +493,7 @@ void simSetPC( unsigned int addr )
     sprintf(buffer,"pc %d\n", addr);
     sendSim(buffer);
     waitForSim(100,NULL);
-    simResponse();   
+    simResponse();
 }
 
 int simSetValue (unsigned int addr,char mem, int size, unsigned long val)
@@ -330,7 +520,7 @@ int simSetValue (unsigned int addr,char mem, int size, unsigned long val)
     sprintf(s,"\n");
     sendSim(buffer);
     waitForSim(100,NULL);
-    simResponse();   
+    simResponse();
     return 0;
 }
 
@@ -363,7 +553,7 @@ unsigned long simGetValue (unsigned int addr,char mem, int size)
         resp = simResponse();
 
         /* got the response we need to parse it the response
-           is of the form 
+           is of the form
            [address] [v] [v] [v] ... special case in
            case of bit variables which case it becomes
            [address] [assembler bit address] [v] */
@@ -376,28 +566,28 @@ unsigned long simGetValue (unsigned int addr,char mem, int size)
         /* skip thru the address part */
         while (isxdigit(*resp)) resp++;
 
-    }   
+    }
     /* make the branch for bit variables */
-    if ( cachenr == BIT_CACHE) 
+    if ( cachenr == BIT_CACHE)
     {
         /* skip until newline */
         while (*resp && *resp != '\n' ) resp++ ;
         if ( *--resp != '0' )
             b[0] = 1;
     }
-    else 
-    {  
-        for (i = 0 ; i < size ; i++ ) 
+    else
+    {
+        for (i = 0 ; i < size ; i++ )
         {
             /* skip white space */
             while (isspace(*resp)) resp++ ;
-           
+
             b[i] = strtol(resp,&resp,16);
         }
     }
 
     return b[0] | b[1] << 8 | b[2] << 16 | b[3] << 24 ;
-       
+
 }
 
 /*-----------------------------------------------------------------*/
@@ -443,7 +633,7 @@ void simLoadFile (char *s)
 unsigned int simGoTillBp ( unsigned int gaddr)
 {
     char *sr;
-    unsigned addr ; 
+    unsigned addr ;
     char *sfmt;
     int wait_ms = 1000;
 
@@ -464,25 +654,25 @@ unsigned int simGoTillBp ( unsigned int gaddr)
       sendSim("reset\n");
       waitForSim(wait_ms, NULL);
       sendSim("run 0x0\n");
-    } else     if (gaddr == -1) { /* resume */
+    } else      if (gaddr == -1) { /* resume */
       sendSim ("run\n");
       wait_ms = 100;
     }
-    else       if (gaddr == 1 ) { /* nexti or next */
+    else        if (gaddr == 1 ) { /* nexti or next */
       sendSim ("next\n");
       wait_ms = 100;
     }
-    else       if (gaddr == 2 ) { /* stepi or step */
+    else        if (gaddr == 2 ) { /* stepi or step */
       sendSim ("step\n");
       wait_ms = 100;
     }
-    else  { 
+    else  {
       printf("Error, simGoTillBp > 0!\n");
       exit(1);
     }
 
     waitForSim(wait_ms, NULL);
-    
+
     /* get the simulator response */
     sr = simResponse();
     /* check for errors */
@@ -532,7 +722,11 @@ void simReset ()
 /*-----------------------------------------------------------------*/
 void closeSimulator ()
 {
+#ifdef _WIN32
+    if ( ! simin || ! simout || INVALID_SOCKET == sock )
+#else
     if ( ! simin || ! simout || sock == -1 )
+#endif
     {
         simactive = 0;
         return;
@@ -541,11 +735,19 @@ void closeSimulator ()
     sendSim("quit\n");
     fclose (simin);
     fclose (simout);
-    shutdown(sock,2);   
-    close(sock);    
+    shutdown(sock,2);
+#ifdef _WIN32
+    closesocket(sock);
+    sock = -1;
+    if (NULL != simPid)
+        TerminateProcess(simPid->hProcess, 0);
+    // Close process and thread handles.
+    CloseHandle(simPid->hProcess);
+    CloseHandle(simPid->hThread);
+#else
+    close(sock);
     sock = -1;
     if ( simPid > 0 )
         kill (simPid,SIGKILL);
+#endif
 }
-
-
index ef32808dc5f26fe63fbd67559f1f26d627e60861..237fe27aa1d53aac733d16b1fedad15f2cb375dc 100644 (file)
@@ -1,30 +1,39 @@
 /*-------------------------------------------------------------------------
   simi.h - Header file for simulator interaction
-
-             Written By -  Sandeep Dutta . sandeep.dutta@usa.net (1999)
+        Written By -  Sandeep Dutta . sandeep.dutta@usa.net (1999)
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
    Free Software Foundation; either version 2, or (at your option) any
    later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-   
+
    In other words, you are welcome to use, share and improve this program.
    You are forbidden to forbid anyone else to use, share and improve
-   what you give them.   Help stamp out software-hoarding!  
+   what you give them.   Help stamp out software-hoarding!
 -------------------------------------------------------------------------*/
 
 #ifndef  SIMI_H
 #define  SIMI_H
 
+#ifdef _WIN32
+/* ugly hack to prevent the incusion of objidl.h */
+#ifdef __MINGW32__
+#define _OLE2_H
+#elif defined _MSC_VER
+#define _OLE2_H_
+#endif
+#include <winsock2.h>
+#endif
+
 #define MAX_SIM_BUFF 8*1024
 
 #define MAX_CACHE_SIZE 2048
@@ -44,7 +53,11 @@ typedef struct _memcache
 } memcache_t;
 
 //#define SIMNAME "s51"
+#ifdef _WIN32
+extern SOCKET sock;
+#else
 extern int sock;
+#endif
 extern char simactive;
 void  openSimulator (char **,int);
 void waitForSim(int timeout_ms, char *expect);
index 7c14aa89fcde8af797696d8b9bc567266c948223..13848caed748f4307aecd734c2fb624a9388b964 100644 (file)
@@ -660,7 +660,7 @@ static void lnkSymRec (char *s)
         sym->rname = alloccpy(s,bp - s);
         sym->scopetype = *s;
         sym->name  = sym->rname;
-        addSet(&symbols,sym); 
+        addSet(&symbols,sym);
     }
     *bp = save_ch;
     if ( *bp )
@@ -736,7 +736,7 @@ static void lnkCSrc (char *s)
     /* one line can have more than one address : (for loops !)*/
     if (line < mod->ncLines && line > 0 /*&&
         ( !mod->cLines[line]->addr ||
-        mod->cLines[line]->level > level )*/ ) 
+        mod->cLines[line]->level > level )*/ )
     {
         if ( mod->cLines[line]->addr != INT_MAX )
         {
index 384d4c1fcc303e8791d965d3287b82f816f71f89..9ca40f3040e7b4daeb0f0957882612e4496342c4 100644 (file)
@@ -1,24 +1,24 @@
 /*-------------------------------------------------------------------------
   symtab.h - Header file for symbol table for sdcdb ( debugger )
-             Written By -  Sandeep Dutta . sandeep.dutta@usa.net (1999)
+        Written By -  Sandeep Dutta . sandeep.dutta@usa.net (1999)
 
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
    Free Software Foundation; either version 2, or (at your option) any
    later version.
-   
+
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-   
+
    In other words, you are welcome to use, share and improve this program.
    You are forbidden to forbid anyone else to use, share and improve
-   what you give them.   Help stamp out software-hoarding!  
+   what you give them.   Help stamp out software-hoarding!
 -------------------------------------------------------------------------*/
 
 #ifndef  SYMTAB_H
@@ -38,7 +38,7 @@ typedef struct structdef {
 
 /* noun definitions */
 enum  { V_INT   =  0,
-       V_FLOAT     ,
+        V_FLOAT     ,
         V_CHAR      ,
         V_VOID      ,
         V_STRUCT    ,
@@ -49,7 +49,7 @@ enum  { V_INT   =  0,
 /* storage class    */
 enum  { S_FIXED  =  0,
         S_AUTO       ,
-        S_REGISTER   ,        
+        S_REGISTER   ,
         S_CONSTANT   ,
         S_SFR        ,
         S_SBIT       ,
@@ -68,7 +68,7 @@ typedef struct specifier {
     unsigned    noun        ;  /* CHAR INT STRUCTURE LABEL   */
     unsigned    sclass      ;  /* REGISTER,AUTO,FIX,CONSTANT */
     unsigned    _long : 1   ;  /* 1=long            */
-    unsigned    _short: 1      ;       /* 1=short int    */
+    unsigned    _short: 1       ;       /* 1=short int    */
     unsigned _unsigned: 1   ;  /* 1=unsigned, 0=signed       */
     unsigned   _static: 1   ;  /* 1=static keyword found     */
     unsigned   _extern: 1   ;  /* 1=extern found             */
@@ -85,8 +85,8 @@ typedef struct specifier {
     unsigned   _addr        ;  /* address of symbol          */
     unsigned   _stack       ;  /* stack offset for stacked v */
     unsigned   _bitStart    ;  /* bit start position         */
-    int        _bitLength   ;  /* bit length                 */        
-    
+    int        _bitLength   ;  /* bit length                 */
+
     struct structdef *v_struct; /* structure pointer      */
 } specifier ;
 
@@ -97,7 +97,7 @@ enum {  POINTER   = 0,       /* pointer to near data */
         GPOINTER     ,       /* _generic pointer     */
         PPOINTER     ,       /* paged area pointer   */
         IPOINTER     ,       /* pointer to upper 128 bytes */
-       UPOINTER     ,       /* unknown pointer used only when parsing */
+        UPOINTER     ,       /* unknown pointer used only when parsing */
         ARRAY        ,
         FUNCTION     };
 
@@ -117,22 +117,22 @@ typedef struct link {
     unsigned tdef  : 1      ;  /* current link created by    */
     /* typedef if this flag is set*/
     union {
-       specifier      s     ;  /* if CLASS == SPECIFIER      */
-       declarator     d     ;  /* if CLASS == DECLARATOR     */
+        specifier      s     ;  /* if CLASS == SPECIFIER      */
+        declarator     d     ;  /* if CLASS == DECLARATOR     */
     } select ;
-    
+
     struct link    *next    ;  /* next element on the chain  */
 } link ;
 
 typedef struct symbol {
     char     *name               ;
-    
+
     short    size               ;
-    short    level             ;  /* declration lev,fld offset */
-    short    block              ;  /* sequential block # of defintion */       
+    short    level              ;  /* declration lev,fld offset */
+    short    block              ;  /* sequential block # of defintion */
     short    isonstack          ;  /* is the variable on stack */
     unsigned isfunc        :1   ;  /* is a functions           */
-    unsigned offset            ;  /* offset from top if struct */
+    unsigned offset             ;  /* offset from top if struct */
     unsigned addr               ;  /* address if the symbol */
     unsigned eaddr              ;  /* end address for functions */
     char     addr_type          ;  /* which address space   */
@@ -163,12 +163,12 @@ typedef struct symbol {
 #define DCL_PTR_CONST(l) l->select.d.ptr_const
 #define DCL_PTR_VOLATILE(l) l->select.d.ptr_volatile
 #define DCL_TSPEC(l) l->select.d.tspec
-#define SPEC_NOUN(x) x->select.s.noun 
+#define SPEC_NOUN(x) x->select.s.noun
 #define SPEC_LONG(x) x->select.s._long
 #define SPEC_SHORT(x) x->select.s._short
 #define SPEC_USIGN(x) x->select.s._unsigned
 #define SPEC_SCLS(x) x->select.s.sclass
-#define SPEC_OCLS(x) x->select.s.oclass 
+#define SPEC_OCLS(x) x->select.s.oclass
 #define SPEC_STAT(x) x->select.s._static
 #define SPEC_EXTR(x) x->select.s._extern
 #define SPEC_CODE(x) x->select.s._codesg
@@ -190,14 +190,14 @@ typedef struct symbol {
 #define SPEC_TYPEDEF(x) x->select.s._typedef
 
 /* type check macros */
-#define IS_DECL(x)   ( x && x->class == DECLARATOR     )
+#define IS_DECL(x)   ( x && x->class == DECLARATOR      )
 #define IS_SPEC(x)   ( x && x->class == SPECIFIER  )
 #define IS_ARRAY(x)  (IS_DECL(x) && DCL_TYPE(x) == ARRAY)
 #define IS_PTR(x)    (IS_DECL(x) && (DCL_TYPE(x) == POINTER    ||    \
                                      DCL_TYPE(x) == FPOINTER   ||    \
-                                    DCL_TYPE(x) == GPOINTER   ||    \
-                                    DCL_TYPE(x) == IPOINTER   ||    \
-                                    DCL_TYPE(x) == PPOINTER   ||    \
+                                     DCL_TYPE(x) == GPOINTER   ||    \
+                                     DCL_TYPE(x) == IPOINTER   ||    \
+                                     DCL_TYPE(x) == PPOINTER   ||    \
                                      DCL_TYPE(x) == CPOINTER   ||    \
                                      DCL_TYPE(x) == UPOINTER  ))
 #define IS_PTR_CONST(x) (IS_PTR(x) && DCL_PTR_CONST(x))
@@ -217,7 +217,7 @@ typedef struct symbol {
 #define IS_INT(x)    (IS_SPEC(x) && x->select.s.noun == V_INT)
 #define IS_VOID(x)   (IS_SPEC(x) && x->select.s.noun == V_VOID)
 #define IS_CHAR(x)   (IS_SPEC(x) && x->select.s.noun == V_CHAR)
-#define IS_EXTERN(x)   (IS_SPEC(x) && x->select.s._extern)
+#define IS_EXTERN(x)    (IS_SPEC(x) && x->select.s._extern)
 #define IS_VOLATILE(x)  (IS_SPEC(x) && x->select.s._volatile )
 #define IS_INTEGRAL(x) (IS_SPEC(x) && (x->select.s.noun == V_INT ||  \
                                        x->select.s.noun == V_CHAR || \
@@ -230,7 +230,7 @@ typedef struct symbol {
 #define IS_ARITHMETIC(x) (IS_INTEGRAL(x) || IS_FLOAT(x))
 #define IS_AGGREGATE(x) (IS_ARRAY(x) || IS_STRUCT(x))
 #define IS_LITERAL(x)   (IS_SPEC(x)  && x->select.s.sclass == S_LITERAL)
-#define IS_ISR(x)              (IS_SPEC(x)  && SPEC_INTRTN(x))
+#define IS_ISR(x)               (IS_SPEC(x)  && SPEC_INTRTN(x))
 
 
 symbol *parseSymbol (char *, char **, int );