Lines Matching refs:cm
53 struct cmap *cm;
55 cm = malloc(sizeof(*cm));
56 if (cm == NULL)
58 cm->cm_root = NULL;
59 cm->cm_def = CM_DEF_SELF;
60 cm->cm_havecache = false;
61 cm->cm_min = cm->cm_max = 0;
62 return (cm);
70 cmap_add(struct cmap *cm, wint_t from, wint_t to)
74 cm->cm_havecache = false;
76 if (cm->cm_root == NULL) {
83 cm->cm_root = cmn;
84 cm->cm_min = cm->cm_max = from;
88 cmn = cm->cm_root = cmap_splay(cm->cm_root, from);
109 if (from < cm->cm_min)
110 cm->cm_min = from;
111 if (from > cm->cm_max)
112 cm->cm_max = from;
113 cm->cm_root = ncmn;
123 cmap_lookup_hard(struct cmap *cm, wint_t ch)
126 if (cm->cm_root != NULL) {
127 cm->cm_root = cmap_splay(cm->cm_root, ch);
128 if (cm->cm_root->cmn_from == ch)
129 return (cm->cm_root->cmn_to);
131 return (cm->cm_def == CM_DEF_SELF ? ch : cm->cm_def);
139 cmap_cache(struct cmap *cm)
144 cm->cm_cache[ch] = cmap_lookup_hard(cm, ch);
146 cm->cm_havecache = true;
156 cmap_default(struct cmap *cm, wint_t def)
160 old = cm->cm_def;
161 cm->cm_def = def;
162 cm->cm_havecache = false;