mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
change error printing from errnum to errsym
When printing an error, calc used to print the errnum (error number): ; 1/0 Error 10001 Calc now prints the errsym (errsym): ; 1/0 Error E_DIVBYZERO Added errsym E_LN_3 for ln(0). Added errsym E_LOG_5 for log(0). Added errsym E_LOG2_4 for log2(0). Added errsym E_LOGN_6 for logn(0,base).
This commit is contained in:
38
func.c
38
func.c
@@ -2232,8 +2232,10 @@ f_ln(int count, VALUE **vals)
|
||||
*/
|
||||
switch (vals[0]->v_type) {
|
||||
case V_NUM:
|
||||
if (!qisneg(vals[0]->v_num) &&
|
||||
!qiszero(vals[0]->v_num)) {
|
||||
if (qiszero(vals[0]->v_num)) {
|
||||
return error_value(E_LN_3);
|
||||
}
|
||||
if (!qisneg(vals[0]->v_num)) {
|
||||
result.v_num = qln(vals[0]->v_num, err);
|
||||
result.v_type = V_NUM;
|
||||
return result;
|
||||
@@ -2244,6 +2246,9 @@ f_ln(int count, VALUE **vals)
|
||||
c = c_ln(&ctmp, err);
|
||||
break;
|
||||
case V_COM:
|
||||
if (ciszero(vals[0]->v_com)) {
|
||||
return error_value(E_LN_3);
|
||||
}
|
||||
c = c_ln(vals[0]->v_com, err);
|
||||
break;
|
||||
default:
|
||||
@@ -2289,8 +2294,10 @@ f_log(int count, VALUE **vals)
|
||||
*/
|
||||
switch (vals[0]->v_type) {
|
||||
case V_NUM:
|
||||
if (!qisneg(vals[0]->v_num) &&
|
||||
!qiszero(vals[0]->v_num)) {
|
||||
if (qiszero(vals[0]->v_num)) {
|
||||
return error_value(E_LOG_5);
|
||||
}
|
||||
if (!qisneg(vals[0]->v_num)) {
|
||||
result.v_num = qlog(vals[0]->v_num, err);
|
||||
result.v_type = V_NUM;
|
||||
return result;
|
||||
@@ -2301,6 +2308,9 @@ f_log(int count, VALUE **vals)
|
||||
c = c_log(&ctmp, err);
|
||||
break;
|
||||
case V_COM:
|
||||
if (ciszero(vals[0]->v_com)) {
|
||||
return error_value(E_LOG_5);
|
||||
}
|
||||
c = c_log(vals[0]->v_com, err);
|
||||
break;
|
||||
default:
|
||||
@@ -2349,6 +2359,9 @@ f_log2(int count, VALUE **vals)
|
||||
*/
|
||||
switch (vals[0]->v_type) {
|
||||
case V_NUM:
|
||||
if (qiszero(vals[0]->v_num)) {
|
||||
return error_value(E_LOG2_4);
|
||||
}
|
||||
if (!qisneg(vals[0]->v_num) &&
|
||||
!qiszero(vals[0]->v_num)) {
|
||||
result.v_num = qlog2(vals[0]->v_num, err);
|
||||
@@ -2361,6 +2374,9 @@ f_log2(int count, VALUE **vals)
|
||||
c = c_log2(&ctmp, err);
|
||||
break;
|
||||
case V_COM:
|
||||
if (ciszero(vals[0]->v_com)) {
|
||||
return error_value(E_LOG2_4);
|
||||
}
|
||||
c = c_log2(vals[0]->v_com, err);
|
||||
break;
|
||||
default:
|
||||
@@ -2447,7 +2463,7 @@ f_logn(int count, VALUE **vals)
|
||||
switch (vals[0]->v_type) {
|
||||
case V_NUM:
|
||||
if (qiszero(vals[0]->v_num)) {
|
||||
return error_value(E_LOGN_3);
|
||||
return error_value(E_LOGN_6);
|
||||
}
|
||||
if (qisneg(vals[0]->v_num)) {
|
||||
ctmp.real = vals[0]->v_num;
|
||||
@@ -2471,7 +2487,7 @@ f_logn(int count, VALUE **vals)
|
||||
break;
|
||||
case V_COM:
|
||||
if (ciszero(vals[0]->v_com)) {
|
||||
return error_value(E_LOGN_3);
|
||||
return error_value(E_LOGN_6);
|
||||
}
|
||||
ln_x_c = c_ln(vals[0]->v_com, err);
|
||||
if (ln_x_c == NULL) {
|
||||
@@ -12027,6 +12043,11 @@ f_aexsec(int count, VALUE **vals)
|
||||
arg1 = *vals[0];
|
||||
if (arg1.v_type == V_NUM) {
|
||||
|
||||
/* firewall */
|
||||
if (qisnegone(arg1.v_num)) {
|
||||
return error_value(E_AEXSEC_3);
|
||||
}
|
||||
|
||||
/* try to compute result using real trig function */
|
||||
result.v_num = qaexsec_or_NULL(arg1.v_num, eps);
|
||||
|
||||
@@ -12169,6 +12190,11 @@ f_aexcsc(int count, VALUE **vals)
|
||||
arg1 = *vals[0];
|
||||
if (arg1.v_type == V_NUM) {
|
||||
|
||||
/* firewall */
|
||||
if (qisnegone(arg1.v_num)) {
|
||||
return error_value(E_AEXCSC_3);
|
||||
}
|
||||
|
||||
/* try to compute result using real trig function */
|
||||
result.v_num = qaexcsc_or_NULL(arg1.v_num, eps);
|
||||
|
||||
|
Reference in New Issue
Block a user