#define FRSH_ERR_LAST_VALUE 0x02004030
-#define ERROR(nn,ss) do {if(nn>FRSH_ERR_BASE_VALUE) my_frsh_strerror(nn, ss); else perror(ss); exit (nn);} while (0)
+
+
+#ifdef AQuoSA
+#define my_frsh_perror(nn,ss) do { errno = nn; perror(ss); } while(0)
+#else
+#define my_frsh_perror(nn,ss) do { perror(ss); } while(0)
+#endif
+
+#define ERROR(nn,ss) do {if(nn>FRSH_ERR_BASE_VALUE) my_frsh_strerror(nn, ss); else { my_frsh_perror(nn, ss); } exit (nn);} while (0)
+
int frsh_strerror (int error, char *message, size_t size);
void my_frsh_strerror(int error, char *sss);
if( (_nn_)>FRSH_ERR_BASE_VALUE ) { \
my_frsh_strerror( (_nn_), error_string); \
} else { \
- perror(error_string); \
+ my_frsh_perror(_nn_, error_string); \
} \
} while(0)