Some argument names in libuim are ambiguous and inconsistent. It should be modified to provide obvious meanings. For example, following function uses 'id_' and 'id' to distinguish types between LISP and int. But such implicit rule is not familiar for ordinary programmers although '_name' style variable names are well known as 'private name'. Requiring such unfamiliar treatment may introduce unwanted human errors. static LISP im_shift_page_candidate(LISP id_, LISP dir_) { uim_context uc; int id = get_c_int(id_); int dir; if FALSEP(dir_) dir = 0; else dir = 1; uc = uim_find_context(id); uim_schedule_cb(uc, CAND_SHIFT_PAGE_CB, NULL, dir, 0); return false_sym; } To avoid such ambiguous meaning, I suggest that explicit type indication such as 'lisp_id' or 'c_id'. I think that using 'LISP id' and 'int c_id' is appropriate because some other functions does not use C version of arguments. Currently such argument names are inconsistent as follows. im_set_encoding(LISP id, LISP enc) im_update_mode(LISP id, LISP mode_) im_activate_candidate_selector(LISP id_, LISP nr_, LISP display_limit_) Some names are arbitrarily lacking trailing '_' and others are not. This result means that the implicit rule ware not recognized by some developers (including me). This inconsistent naming rule obscures the implicit meaning and confuses developers. Removing '_' from arguments and use 'c_' prefix for C versions of the variables in the functions will resolve the problem for anyone.
'var_' style name is not so bad. I'll define coding standard until uim 2.0.
Moved to https://github.com/uim/uim/issues/1
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.