error.h 418 B

1234567891011121314151617181920
  1. #pragma lib "liberror.a"
  2. #pragma src "/sys/src/liberror"
  3. typedef struct Error Error;
  4. struct Error {
  5. int nerr;
  6. int nlabel;
  7. jmp_buf label[1]; /* of [stack] actually */
  8. };
  9. #pragma varargck argpos error 1
  10. #pragma varargck argpos esmprint 1
  11. void errinit(int stack);
  12. void noerror(void);
  13. int nerrors(void);
  14. void error(char* msg, ...);
  15. #define catcherror() setjmp((*__ep)->label[(*__ep)->nerr++])
  16. extern Error** __ep;