Changeset 12713
- Timestamp:
- Aug 28, 2009, 10:32:00 AM (15 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
-
source/lisp-kernel/lisp-debug.c (modified) (5 diffs)
-
windows/ccl/wx86cl.exe (modified) ( previous)
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/lisp-kernel/lisp-debug.c
r12126 r12713 28 28 #include <stdio.h> 29 29 30 #ifndef WINDOWS 30 #ifdef WINDOWS 31 #include <fcntl.h> 32 #else 31 33 #include <sys/socket.h> 32 34 #include <dlfcn.h> … … 100 102 (fd0stat.st_dev == devnullstat.st_dev)); 101 103 } 102 103 #endif 104 #endif 105 106 #ifdef WINDOWS 107 Boolean 108 stdin_is_dev_null() 109 { 110 HANDLE stdIn; 111 stdIn = GetStdHandle(STD_INPUT_HANDLE); 112 return (stdIn == NULL); 113 } 114 #endif 115 104 116 105 117 char * … … 145 157 switch(c) { 146 158 case '\n': 159 continue; 160 case '\r': 147 161 continue; 148 162 case EOF: … … 1108 1122 #endif 1109 1123 1124 #ifdef WINDOWS 1125 Boolean first_debugger_call = TRUE; 1126 #endif 1127 1110 1128 1111 1129 OSStatus … … 1120 1138 debug_command_return state = debug_continue; 1121 1139 1140 #ifdef WINDOWS 1141 HANDLE h; 1142 int fd; 1143 FILE *f; 1144 1145 if (first_debugger_call) { 1146 first_debugger_call = FALSE; 1147 if (stdin_is_dev_null()) 1148 AllocConsole(); 1149 // Reassociate C's stdin with Windows' stdin 1150 h = GetStdHandle(STD_INPUT_HANDLE); 1151 fd = _open_osfhandle((intptr_t)h, _O_TEXT); 1152 if (fd >= 0) { 1153 f = _fdopen(fd, "r"); 1154 *stdin = *f; 1155 } 1156 // Reassociate C's stdout with Windows' stdout 1157 h = GetStdHandle(STD_OUTPUT_HANDLE); 1158 fd = _open_osfhandle((intptr_t)h, _O_TEXT); 1159 if (fd >= 0) { 1160 f = _fdopen(fd, "w"); 1161 *stdout = *f; 1162 } 1163 // Reassociate C's stderr with Windows' stderr 1164 h = GetStdHandle(STD_ERROR_HANDLE); 1165 fd = _open_osfhandle((intptr_t)h, _O_TEXT); 1166 if (fd >= 0) { 1167 f = _fdopen(fd, "w"); 1168 *stderr = *f; 1169 } 1170 dbgout = stderr; 1171 } 1172 #endif 1173 1174 if (stdin_is_dev_null()) { 1175 return -1; 1176 } 1177 1122 1178 va_start(args,message); 1123 1179 vfprintf(dbgout, message, args); 1124 1180 fprintf(dbgout, "\n"); 1125 1181 va_end(args); 1126 1127 1128 #ifndef WINDOWS 1129 if (stdin_is_dev_null()) { 1130 return -1; 1131 } 1132 #endif 1182 1133 1183 if (threads_initialized) { 1134 1184 suspend_other_threads(false);
Note:
See TracChangeset
for help on using the changeset viewer.
