Changeset 2298 in kBuild
- Timestamp:
- Mar 1, 2009 5:18:30 AM (16 years ago)
- Location:
- trunk/src/kash
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kash/error.c
r1240 r2298 69 69 char *commandname;*/ 70 70 71 72 static void exverror(shinstance *psh, int, const char *, va_list) 73 __attribute__((__noreturn__)); 71 SH_NORETURN_1 72 static void exverror(shinstance *psh, int, const char *, va_list) SH_NORETURN_2; 74 73 75 74 /* … … 79 78 */ 80 79 81 void80 SH_NORETURN_1 void 82 81 exraise(shinstance *psh, int e) 83 82 { … … 172 171 173 172 174 void173 SH_NORETURN_1 void 175 174 error(shinstance *psh, const char *msg, ...) 176 175 { … … 184 183 185 184 186 void185 SH_NORETURN_1 void 187 186 exerror(shinstance *psh, int cond, const char *msg, ...) 188 187 { … … 199 198 */ 200 199 201 void200 SH_NORETURN_1 void 202 201 sh_exit(shinstance *psh, int rval) 203 202 { … … 206 205 } 207 206 208 void207 SH_NORETURN_1 void 209 208 sh_err(shinstance *psh, int status, const char *fmt, ...) 210 209 { … … 217 216 } 218 217 219 void218 SH_NORETURN_1 void 220 219 sh_verr(shinstance *psh, int status, const char *fmt, va_list ap) 221 220 { … … 224 223 } 225 224 226 void225 SH_NORETURN_1 void 227 226 sh_errx(shinstance *psh, int status, const char *fmt, ...) 228 227 { … … 235 234 } 236 235 237 void236 SH_NORETURN_1 void 238 237 sh_verrx(shinstance *psh, int status, const char *fmt, va_list ap) 239 238 { -
trunk/src/kash/error.h
r1233 r2298 98 98 #endif 99 99 100 void exraise(struct shinstance *, int) __attribute__((__noreturn__));100 SH_NORETURN_1 void exraise(struct shinstance *, int) SH_NORETURN_2; 101 101 void onint(struct shinstance *); 102 void error(struct shinstance *, const char *, ...) __attribute__((__noreturn__));103 void exerror(struct shinstance *, int, const char *, ...) __attribute__((__noreturn__));102 SH_NORETURN_1 void error(struct shinstance *, const char *, ...) SH_NORETURN_2; 103 SH_NORETURN_1 void exerror(struct shinstance *, int, const char *, ...) SH_NORETURN_2; 104 104 const char *errmsg(struct shinstance *, int, int); 105 105 106 void sh_err(struct shinstance *, int, const char *, ...) __attribute__((__noreturn__));107 void sh_verr(struct shinstance *, int, const char *, va_list) __attribute__((__noreturn__));108 void sh_errx(struct shinstance *, int, const char *, ...) __attribute__((__noreturn__));109 void sh_verrx(struct shinstance *, int, const char *, va_list) __attribute__((__noreturn__));106 SH_NORETURN_1 void sh_err(struct shinstance *, int, const char *, ...) SH_NORETURN_2; 107 SH_NORETURN_1 void sh_verr(struct shinstance *, int, const char *, va_list) SH_NORETURN_2; 108 SH_NORETURN_1 void sh_errx(struct shinstance *, int, const char *, ...) SH_NORETURN_2; 109 SH_NORETURN_1 void sh_verrx(struct shinstance *, int, const char *, va_list) SH_NORETURN_2; 110 110 void sh_warn(struct shinstance *, const char *, ...); 111 111 void sh_vwarn(struct shinstance *, const char *, va_list); … … 113 113 void sh_vwarnx(struct shinstance *, const char *, va_list); 114 114 115 void sh_exit(struct shinstance *, int) __attribute__((__noreturn__));115 SH_NORETURN_1 void sh_exit(struct shinstance *, int) SH_NORETURN_2; 116 116 117 117 -
trunk/src/kash/exec.c
r2290 r2298 117 117 */ 118 118 119 void119 SH_NORETURN_1 void 120 120 shellexec(shinstance *psh, char **argv, char **envp, const char *path, int idx, int vforked) 121 121 { -
trunk/src/kash/exec.h
r1233 r2298 69 69 #endif 70 70 71 void shellexec(struct shinstance *, char **, char **, const char *, int, int) 72 __attribute__((__noreturn__)); 71 SH_NORETURN_1 void shellexec(struct shinstance *, char **, char **, const char *, int, int) SH_NORETURN_2; 73 72 char *padvance(struct shinstance *, const char **, const char *); 74 73 int hashcmd(struct shinstance *, int, char **); -
trunk/src/kash/main.c
r2294 r2298 85 85 STATIC char *find_dot_file(struct shinstance *, char *); 86 86 int main(int, char **, char **); 87 int shell_main(shinstance *, int, char **);87 SH_NORETURN_1 void shell_main(shinstance *, int, char **) SH_NORETURN_2; 88 88 #ifdef _MSC_VER 89 89 extern void init_syntax(void); … … 134 134 return 2; 135 135 shthread_set_shell(psh); 136 return shell_main(psh, argc, psh->argptr); 137 } 138 139 int 136 shell_main(psh, argc, psh->argptr); 137 /* Not reached. */ 138 return 89; 139 } 140 141 SH_NORETURN_1 void 140 142 shell_main(shinstance *psh, int argc, char **argv) 141 143 { … … 251 253 exitshell(psh, psh->exitstatus); 252 254 /* NOTREACHED */ 253 return 1;254 255 } 255 256 -
trunk/src/kash/parser.c
r2290 r2298 116 116 STATIC int readtoken1(shinstance *, int, char const *, char *, int); 117 117 STATIC int noexpand(shinstance *, char *); 118 S TATIC void synexpect(shinstance *, int) __attribute__((__noreturn__));119 S TATIC void synerror(shinstance *, const char *) __attribute__((__noreturn__));118 SH_NORETURN_1 STATIC void synexpect(shinstance *, int) SH_NORETURN_2; 119 SH_NORETURN_1 STATIC void synerror(shinstance *, const char *) SH_NORETURN_2; 120 120 STATIC void setprompt(shinstance *, int); 121 121 … … 1596 1596 */ 1597 1597 1598 S TATIC void1598 SH_NORETURN_1 STATIC void 1599 1599 synexpect(shinstance *psh, int token) 1600 1600 { … … 1612 1612 1613 1613 1614 S TATIC void1614 SH_NORETURN_1 STATIC void 1615 1615 synerror(shinstance *psh, const char *msg) 1616 1616 { -
trunk/src/kash/shfile.c
r2297 r2298 625 625 SecurityAttributes.bInheritHandle = TRUE; 626 626 627 if (!CreatePipe(&hRead, &hWrite, &SecurityAttributes, 4096)) 627 fds[1] = fds[0] = -1; 628 if (CreatePipe(&hRead, &hWrite, &SecurityAttributes, 4096)) 628 629 { 629 630 fds[0] = shfile_insert(pfdtab, (intptr_t)hRead, O_RDONLY, -1, "shfile_pipe"); … … 637 638 # else 638 639 int native_fds[2]; 640 641 fds[1] = fds[0] = -1; 639 642 if (!pipe(native_fds)) 640 643 { 641 fds[1] = -1;642 644 fds[0] = shfile_insert(pfdtab, native_fds[0], O_RDONLY, -1, "shfile_pipe"); 643 645 if (fds[0] != -1) … … 673 675 rc = -1; 674 676 } 677 } 678 else 679 { 680 # if K_OS == K_OS_WINDOWS 681 errno = shfile_dos2errno(GetLastError()); 682 # endif 683 rc = -1; 675 684 } 676 685 -
trunk/src/kash/shinstance.c
r2296 r2298 744 744 } 745 745 746 void sh_abort(shinstance *psh)746 SH_NORETURN_1 void sh_abort(shinstance *psh) 747 747 { 748 748 shsigset_t set; … … 910 910 return 0; 911 911 } 912 #include <setjmp.h> 912 913 913 914 pid_t sh_fork(shinstance *psh) … … 921 922 #elif K_OS == K_OS_WINDOWS //&& defined(SH_FORKED_MODE) 922 923 pid = shfork_do_it(psh); 923 # ifdef DEBUG924 if (!pid)925 opentrace(psh);926 # endif927 924 928 925 #elif defined(SH_STUB_MODE) || defined(SH_FORKED_MODE) … … 1069 1066 } 1070 1067 1071 void sh__exit(shinstance *psh, int rc)1068 SH_NORETURN_1 void sh__exit(shinstance *psh, int rc) 1072 1069 { 1073 1070 TRACE2((psh, "sh__exit(%d)\n", rc)); -
trunk/src/kash/shinstance.h
r2296 r2298 390 390 int sh_sigismember(shsigset_t const *, int); 391 391 int sh_sigprocmask(shinstance *, int, shsigset_t const *, shsigset_t *); 392 void sh_abort(shinstance *) __attribute__((__noreturn__));392 SH_NORETURN_1 void sh_abort(shinstance *) SH_NORETURN_2; 393 393 void sh_raise_sigint(shinstance *); 394 394 int sh_kill(shinstance *, pid_t, int); … … 438 438 pid_t sh_fork(shinstance *); 439 439 pid_t sh_waitpid(shinstance *, pid_t, int *, int); 440 void sh__exit(shinstance *, int) __attribute__((__noreturn__));440 SH_NORETURN_1 void sh__exit(shinstance *, int) SH_NORETURN_2; 441 441 int sh_execve(shinstance *, const char *, const char * const*, const char * const *); 442 442 uid_t sh_getuid(shinstance *); -
trunk/src/kash/shtypes.h
r2243 r2298 113 113 } shsigaction_t; 114 114 115 /* SH_NORETURN_1 must be both on prototypes and definitions, while 116 SH_NORETURN_2 should at least be on the prototype. */ 117 #ifdef _MSC_VER 118 # define SH_NORETURN_1 __declspec(noreturn) 119 # define SH_NORETURN_2 120 #else 121 # define SH_NORETURN_1 122 # define SH_NORETURN_2 __attribute__((__noreturn__)); 115 123 #endif 116 124 125 #endif 126 -
trunk/src/kash/trap.c
r2290 r2298 434 434 */ 435 435 436 void436 SH_NORETURN_1 void 437 437 exitshell(shinstance *psh, int status) 438 438 { -
trunk/src/kash/trap.h
r1233 r2298 44 44 void dotrap(struct shinstance *); 45 45 void setinteractive(struct shinstance *, int); 46 void exitshell(struct shinstance *, int) __attribute__((__noreturn__));46 SH_NORETURN_1 void exitshell(struct shinstance *, int) SH_NORETURN_2;
Note:
See TracChangeset
for help on using the changeset viewer.