diff --git a/utshell-0.5/r_expr/src/lib.rs b/utshell-0.5/r_expr/src/lib.rs index 5b6688889f350c7d0348ff97709202ef38dc2c56..9d8fe4807ad6f1f64735d98151bf6fb046a5e129 100644 --- a/utshell-0.5/r_expr/src/lib.rs +++ b/utshell-0.5/r_expr/src/lib.rs @@ -1119,4 +1119,45 @@ unsafe extern "C" fn expr_skipsubscript( 0 as libc::c_int }; return skipsubscript(cp, 0 as libc::c_int, flags); -} \ No newline at end of file +} + + +#[no_mangle] +unsafe extern "C" fn evalerror(mut msg: *const libc::c_char) { + let mut name: *mut libc::c_char = 0 as *mut libc::c_char; + let mut t: *mut libc::c_char = 0 as *mut libc::c_char; + name = this_command_name; + t = expression; + while !t.is_null() && (*t as libc::c_int == ' ' as i32 || *t as libc::c_int == '\t' as i32) { + t = t.offset(1); + } + internal_error( + dcgettext( + 0 as *const libc::c_char, + b"%s%s%s: %s (error token is \"%s\")\0" as *const u8 as *const libc::c_char, + 5 as libc::c_int, + ), + if !name.is_null() { + name + } else { + b"\0" as *const u8 as *const libc::c_char + }, + if !name.is_null() { + b": \0" as *const u8 as *const libc::c_char + } else { + b"\0" as *const u8 as *const libc::c_char + }, + if !t.is_null() { + t + } else { + b"\0" as *const u8 as *const libc::c_char + }, + msg, + if !lasttp.is_null() && *lasttp as libc::c_int != 0 { + lasttp + } else { + b"\0" as *const u8 as *const libc::c_char + }, + ); + siglongjmp(evalbuf.as_mut_ptr(), 1 as libc::c_int); +}