|  | @@ -8,6 +8,7 @@ mod casecmp;
 | 
	
		
			
				|  |  |  mod punct;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  pub type wctype_t = u32;
 | 
	
		
			
				|  |  | +pub type wctrans_t = *const i32;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  pub const WEOF: wint_t = 0xFFFF_FFFFu32;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -24,6 +25,9 @@ pub const WCTYPE_SPACE: wctype_t = 10;
 | 
	
		
			
				|  |  |  pub const WCTYPE_UPPER: wctype_t = 11;
 | 
	
		
			
				|  |  |  pub const WCTYPE_XDIGIT: wctype_t = 12;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +const WCTRANSUP: wctrans_t = 1 as wctrans_t;
 | 
	
		
			
				|  |  | +const WCTRANSLW: wctrans_t = 2 as wctrans_t;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  #[no_mangle]
 | 
	
		
			
				|  |  |  pub extern "C" fn iswctype(wc: wint_t, desc: wctype_t) -> c_int {
 | 
	
		
			
				|  |  |      match desc {
 | 
	
	
		
			
				|  | @@ -173,3 +177,22 @@ pub extern "C" fn towlower(wc: wint_t) -> wint_t {
 | 
	
		
			
				|  |  |  pub extern "C" fn towupper(wc: wint_t) -> wint_t {
 | 
	
		
			
				|  |  |      casemap(wc, 1)
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#[no_mangle]
 | 
	
		
			
				|  |  | +pub extern "C" fn wctrans(class: *const c_char) -> wctrans_t {
 | 
	
		
			
				|  |  | +    let class_cstr = unsafe { CStr::from_ptr(class) };
 | 
	
		
			
				|  |  | +    match class_cstr.to_bytes() {
 | 
	
		
			
				|  |  | +        b"toupper" => WCTRANSUP,
 | 
	
		
			
				|  |  | +        b"tolower" => WCTRANSLW,
 | 
	
		
			
				|  |  | +        _ => 0 as wctrans_t,
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#[no_mangle]
 | 
	
		
			
				|  |  | +pub extern "C" fn towctrans(wc: wint_t, trans: wctrans_t) -> wint_t {
 | 
	
		
			
				|  |  | +    match trans {
 | 
	
		
			
				|  |  | +        WCTRANSUP => towupper(wc),
 | 
	
		
			
				|  |  | +        WCTRANSLW => towlower(wc),
 | 
	
		
			
				|  |  | +        _ => wc,
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +}
 |