Cleanup: order buffer length after the buffer

This commit is contained in:
Campbell Barton 2017-11-06 00:04:46 +11:00
parent 2837a7e198
commit 18d7fbe4f5
7 changed files with 69 additions and 48 deletions

View File

@ -983,7 +983,9 @@ void ui_but_add_shortcut(uiBut *but, const char *shortcut_str, const bool do_str
}
}
static bool ui_but_event_operator_string(const bContext *C, uiBut *but, char *buf, const size_t buf_len)
static bool ui_but_event_operator_string(
const bContext *C, uiBut *but,
char *buf, const size_t buf_len)
{
MenuType *mt;
bool found = false;
@ -991,7 +993,10 @@ static bool ui_but_event_operator_string(const bContext *C, uiBut *but, char *bu
if (but->optype) {
IDProperty *prop = (but->opptr) ? but->opptr->data : NULL;
if (WM_key_event_operator_string(C, but->optype->idname, but->opcontext, prop, true, buf_len, buf)) {
if (WM_key_event_operator_string(
C, but->optype->idname, but->opcontext, prop, true,
buf, buf_len))
{
found = true;
}
}
@ -1006,8 +1011,9 @@ static bool ui_but_event_operator_string(const bContext *C, uiBut *but, char *bu
IDP_AssignString(prop_menu_name, mt->idname, sizeof(mt->idname));
if (WM_key_event_operator_string(C, "WM_OT_call_menu", WM_OP_INVOKE_REGION_WIN, prop_menu,
true, buf_len, buf))
if (WM_key_event_operator_string(
C, "WM_OT_call_menu", WM_OP_INVOKE_REGION_WIN, prop_menu, true,
buf, buf_len))
{
found = true;
}
@ -1019,8 +1025,10 @@ static bool ui_but_event_operator_string(const bContext *C, uiBut *but, char *bu
return found;
}
static bool ui_but_event_property_operator_string(const bContext *C, uiBut *but, char *buf, const size_t buf_len)
{
static bool ui_but_event_property_operator_string(
const bContext *C, uiBut *but,
char *buf, const size_t buf_len)
{
/* context toggle operator names to check... */
const char *ctx_toggle_opnames[] = {
"WM_OT_context_toggle",
@ -1114,8 +1122,9 @@ static bool ui_but_event_property_operator_string(const bContext *C, uiBut *but,
/* check each until one works... */
for (i = 0; (i < num_ops) && (ctx_toggle_opnames[i]); i++) {
if (WM_key_event_operator_string(C, ctx_toggle_opnames[i], WM_OP_INVOKE_REGION_WIN, prop_path, false,
buf_len, buf))
if (WM_key_event_operator_string(
C, ctx_toggle_opnames[i], WM_OP_INVOKE_REGION_WIN, prop_path, false,
buf, buf_len))
{
found = true;
break;

View File

@ -6544,8 +6544,9 @@ static void but_shortcut_name_func(bContext *C, void *arg1, int UNUSED(event))
IDProperty *prop = (but->opptr) ? but->opptr->data : NULL;
/* complex code to change name of button */
if (WM_key_event_operator_string(C, but->optype->idname, but->opcontext, prop, true,
sizeof(shortcut_str), shortcut_str))
if (WM_key_event_operator_string(
C, but->optype->idname, but->opcontext, prop, true,
shortcut_str, sizeof(shortcut_str)))
{
ui_but_add_shortcut(but, shortcut_str, true);
}

View File

@ -710,7 +710,7 @@ static uiBut *ui_item_with_label(uiLayout *layout, uiBlock *block, const char *n
if (RNA_struct_is_a(ptr->type, &RNA_KeyMapItem)) {
char buf[128];
WM_keymap_item_to_string(ptr->data, false, sizeof(buf), buf);
WM_keymap_item_to_string(ptr->data, false, buf, sizeof(buf));
but = uiDefButR_prop(block, UI_BTYPE_HOTKEY_EVENT, 0, buf, x, y, w, h, ptr, prop, 0, 0, 0, -1, -1, NULL);
UI_but_func_set(but, ui_keymap_but_cb, but, NULL);
@ -2093,8 +2093,9 @@ void uiItemMenuEnumO_ptr(
(ot->prop && ot->invoke))
{
char keybuf[128];
if (WM_key_event_operator_string(C, ot->idname, layout->root->opcontext, NULL, false,
sizeof(keybuf), keybuf))
if (WM_key_event_operator_string(
C, ot->idname, layout->root->opcontext, NULL, false,
keybuf, sizeof(keybuf)))
{
ui_but_add_shortcut(but, keybuf, false);
}

View File

@ -3356,8 +3356,9 @@ static void operator_search_cb(const bContext *C, void *UNUSED(arg), const char
/* check for hotkey */
if (len < sizeof(name) - 6) {
if (WM_key_event_operator_string(C, ot->idname, WM_OP_EXEC_DEFAULT, NULL, true,
sizeof(name) - len - 1, &name[len + 1]))
if (WM_key_event_operator_string(
C, ot->idname, WM_OP_EXEC_DEFAULT, NULL, true,
&name[len + 1], sizeof(name) - len - 1))
{
name[len] = UI_SEP_CHAR;
}

View File

@ -4333,7 +4333,7 @@ static void headerTranslation(TransInfo *t, const float vec[3], char str[UI_MAX_
const char *str_dir = (snode->insert_ofs_dir == SNODE_INSERTOFS_DIR_RIGHT) ? IFACE_("right") : IFACE_("left");
char str_km[64];
WM_modalkeymap_items_to_string(t->keymap, TFM_MODAL_INSERTOFS_TOGGLE_DIR, true, sizeof(str_km), str_km);
WM_modalkeymap_items_to_string(t->keymap, TFM_MODAL_INSERTOFS_TOGGLE_DIR, true, str_km, sizeof(str_km));
ofs += BLI_snprintf(str, UI_MAX_DRAW_STR, IFACE_("Auto-offset set to %s - press %s to toggle direction | %s"),
str_dir, str_km, str_old);
@ -4549,7 +4549,7 @@ static void applyShrinkFatten(TransInfo *t, const int UNUSED(mval[2]))
if (t->keymap) {
wmKeyMapItem *kmi = WM_modalkeymap_find_propvalue(t->keymap, TFM_MODAL_RESIZE);
if (kmi) {
ofs += WM_keymap_item_to_string(kmi, false, sizeof(str) - ofs, str + ofs);
ofs += WM_keymap_item_to_string(kmi, false, str + ofs, sizeof(str) - ofs);
}
}
BLI_snprintf(str + ofs, sizeof(str) - ofs, IFACE_(" or Alt) Even Thickness %s"),
@ -7991,7 +7991,7 @@ static void headerSeqSlide(TransInfo *t, const float val[2], char str[UI_MAX_DRA
if (t->keymap) {
wmKeyMapItem *kmi = WM_modalkeymap_find_propvalue(t->keymap, TFM_MODAL_TRANSLATE);
if (kmi) {
ofs += WM_keymap_item_to_string(kmi, false, UI_MAX_DRAW_STR - ofs, str + ofs);
ofs += WM_keymap_item_to_string(kmi, false, str + ofs, UI_MAX_DRAW_STR - ofs);
}
}
ofs += BLI_snprintf(str + ofs, UI_MAX_DRAW_STR - ofs, IFACE_(" or Alt) Expand to fit %s"),

View File

@ -68,7 +68,7 @@ wmKeyMapItem *WM_keymap_add_menu_pie(struct wmKeyMap *keymap, const char *idname
int val, int modifier, int keymodifier);
bool WM_keymap_remove_item(struct wmKeyMap *keymap, struct wmKeyMapItem *kmi);
int WM_keymap_item_to_string(wmKeyMapItem *kmi, const bool compact, const int len, char *r_str);
int WM_keymap_item_to_string(wmKeyMapItem *kmi, const bool compact, char *result, const int result_len);
wmKeyMap *WM_keymap_list_find(ListBase *lb, const char *idname, int spaceid, int regionid);
wmKeyMap *WM_keymap_find(struct wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid);
@ -83,12 +83,14 @@ int WM_keymap_item_compare(struct wmKeyMapItem *k1, struct wmKeyMapItem *k2);
/* Modal Keymap */
int WM_modalkeymap_items_to_string(
struct wmKeyMap *km, const int propvalue, const bool compact, const int len, char *r_str);
struct wmKeyMap *km, const int propvalue, const bool compact,
char *result, const int result_len);
int WM_modalkeymap_operator_items_to_string(
struct wmOperatorType *ot, const int propvalue, const bool compact, const int len, char *r_str);
struct wmOperatorType *ot, const int propvalue, const bool compact,
char *result, const int result_len);
char *WM_modalkeymap_operator_items_to_string_buf(
struct wmOperatorType *ot, const int propvalue, const bool compact,
const int max_len, int *r_available_len, char **r_str);
const int max_len, int *r_available_len, char **r_result);
wmKeyMap *WM_modalkeymap_add(struct wmKeyConfig *keyconf, const char *idname, const struct EnumPropertyItem *items);
wmKeyMap *WM_modalkeymap_get(struct wmKeyConfig *keyconf, const char *idname);
@ -109,14 +111,16 @@ int WM_keymap_map_type_get(struct wmKeyMapItem *kmi);
const char *WM_key_event_string(const short type, const bool compact);
int WM_keymap_item_raw_to_string(
const short shift, const short ctrl, const short alt, const short oskey, const short keymodifier,
const short val, const short type, const bool compact, const int len, char *r_str);
const short val, const short type, const bool compact,
char *result, const int result_len);
wmKeyMapItem *WM_key_event_operator(
const struct bContext *C, const char *opname, int opcontext,
struct IDProperty *properties, const bool is_hotkey,
struct wmKeyMap **r_keymap);
char *WM_key_event_operator_string(
char *WM_key_event_operator_string(
const struct bContext *C, const char *opname, int opcontext,
struct IDProperty *properties, const bool is_strict, int len, char *r_str);
struct IDProperty *properties, const bool is_strict,
char *result, const int result_len);
const char *WM_bool_as_string(bool test);

View File

@ -940,7 +940,7 @@ const char *WM_key_event_string(const short type, const bool compact)
int WM_keymap_item_raw_to_string(
const short shift, const short ctrl, const short alt, const short oskey,
const short keymodifier, const short val, const short type, const bool compact,
const int len, char *r_str)
char *result, const int result_len)
{
#define ADD_SEP if (p != buf) *p++ = ' '; (void)0
@ -1000,20 +1000,23 @@ int WM_keymap_item_raw_to_string(
BLI_assert(p - buf < sizeof(buf));
/* We need utf8 here, otherwise we may 'cut' some unicode chars like arrows... */
return BLI_strncpy_utf8_rlen(r_str, buf, len);
return BLI_strncpy_utf8_rlen(result, buf, result_len);
#undef ADD_SEP
}
int WM_keymap_item_to_string(wmKeyMapItem *kmi, const bool compact, const int len, char *r_str)
int WM_keymap_item_to_string(
wmKeyMapItem *kmi, const bool compact,
char *result, const int result_len)
{
return WM_keymap_item_raw_to_string(
kmi->shift, kmi->ctrl, kmi->alt, kmi->oskey, kmi->keymodifier, kmi->val, kmi->type,
compact, len, r_str);
kmi->shift, kmi->ctrl, kmi->alt, kmi->oskey, kmi->keymodifier, kmi->val, kmi->type,
compact, result, result_len);
}
int WM_modalkeymap_items_to_string(
wmKeyMap *km, const int propvalue, const bool compact, const int len, char *r_str)
wmKeyMap *km, const int propvalue, const bool compact,
char *result, const int result_len)
{
int totlen = 0;
bool add_sep = false;
@ -1023,17 +1026,17 @@ int WM_modalkeymap_items_to_string(
/* Find all shortcuts related to that propvalue! */
for (kmi = WM_modalkeymap_find_propvalue(km, propvalue);
kmi && totlen < (len - 2);
kmi && totlen < (result_len - 2);
kmi = wm_modalkeymap_find_propvalue_iter(km, kmi, propvalue))
{
if (add_sep) {
r_str[totlen++] = '/';
r_str[totlen] = '\0';
result[totlen++] = '/';
result[totlen] = '\0';
}
else {
add_sep = true;
}
totlen += WM_keymap_item_to_string(kmi, compact, len - totlen, &r_str[totlen]);
totlen += WM_keymap_item_to_string(kmi, compact, &result[totlen], result_len - totlen);
}
}
@ -1041,25 +1044,26 @@ int WM_modalkeymap_items_to_string(
}
int WM_modalkeymap_operator_items_to_string(
wmOperatorType *ot, const int propvalue, const bool compact, const int len, char *r_str)
wmOperatorType *ot, const int propvalue, const bool compact,
char *result, const int result_len)
{
return WM_modalkeymap_items_to_string(ot->modalkeymap, propvalue, compact, len, r_str);
return WM_modalkeymap_items_to_string(ot->modalkeymap, propvalue, compact, result, result_len);
}
char *WM_modalkeymap_operator_items_to_string_buf(
wmOperatorType *ot, const int propvalue, const bool compact,
const int max_len, int *r_available_len, char **r_str)
const int max_len, int *r_available_len, char **r_result)
{
char *ret = *r_str;
char *ret = *r_result;
if (*r_available_len > 1) {
int used_len = WM_modalkeymap_operator_items_to_string(
ot, propvalue, compact, min_ii(*r_available_len, max_len), ret) + 1;
ot, propvalue, compact, ret, min_ii(*r_available_len, max_len)) + 1;
*r_available_len -= used_len;
*r_str += used_len;
*r_result += used_len;
if (*r_available_len == 0) {
(*r_str)--; /* So that *str keeps pointing on a valid char, we'll stay on it anyway. */
(*r_result)--; /* So that *result keeps pointing on a valid char, we'll stay on it anyway. */
}
}
else {
@ -1126,7 +1130,7 @@ static wmKeyMapItem *wm_keymap_item_find_handlers(
if (IDP_EqualsProperties_ex(properties, properties_default, is_strict)) {
char kmi_str[128];
WM_keymap_item_to_string(kmi, false, sizeof(kmi_str), kmi_str);
WM_keymap_item_to_string(kmi, false, kmi_str, sizeof(kmi_str));
/* Note gievn properties could come from other things than menu entry... */
printf("%s: Some set values in menu entry match default op values, "
"this might not be desired!\n", opname);
@ -1276,7 +1280,7 @@ static wmKeyMapItem *wm_keymap_item_find(
kmi = wm_keymap_item_find_props(C, opname, opcontext, properties_default, is_strict, is_hotkey, &km);
if (kmi) {
char kmi_str[128];
WM_keymap_item_to_string(kmi, false, sizeof(kmi_str), kmi_str);
WM_keymap_item_to_string(kmi, false, kmi_str, sizeof(kmi_str));
printf("%s: Some set values in keymap entry match default op values, "
"this might not be desired!\n", opname);
printf("\tkm: '%s', kmi: '%s'\n", km->idname, kmi_str);
@ -1302,13 +1306,14 @@ static wmKeyMapItem *wm_keymap_item_find(
char *WM_key_event_operator_string(
const bContext *C, const char *opname, int opcontext,
IDProperty *properties, const bool is_strict, int len, char *r_str)
IDProperty *properties, const bool is_strict,
char *result, const int result_len)
{
wmKeyMapItem *kmi = wm_keymap_item_find(C, opname, opcontext, properties, false, is_strict, NULL);
if (kmi) {
WM_keymap_item_to_string(kmi, false, len, r_str);
return r_str;
WM_keymap_item_to_string(kmi, false, result, result_len);
return result;
}
return NULL;