Lines Matching refs:cm
48 struct cmap *cm;
50 cm = malloc(sizeof (*cm));
51 if (cm == NULL)
53 cm->cm_root = NULL;
54 cm->cm_def = CM_DEF_SELF;
55 cm->cm_havecache = false;
56 cm->cm_min = cm->cm_max = 0;
57 return (cm);
65 cmap_add(struct cmap *cm, wint_t from, wint_t to)
69 cm->cm_havecache = false;
71 if (cm->cm_root == NULL) {
78 cm->cm_root = cmn;
79 cm->cm_min = cm->cm_max = from;
83 cmn = cm->cm_root = cmap_splay(cm->cm_root, from);
104 if (from < cm->cm_min)
105 cm->cm_min = from;
106 if (from > cm->cm_max)
107 cm->cm_max = from;
108 cm->cm_root = ncmn;
118 cmap_lookup_hard(struct cmap *cm, wint_t ch)
121 if (cm->cm_root != NULL) {
122 cm->cm_root = cmap_splay(cm->cm_root, ch);
123 if (cm->cm_root->cmn_from == ch)
124 return (cm->cm_root->cmn_to);
126 return (cm->cm_def == CM_DEF_SELF ? ch : cm->cm_def);
134 cmap_cache(struct cmap *cm)
139 cm->cm_cache[ch] = cmap_lookup_hard(cm, ch);
141 cm->cm_havecache = true;
151 cmap_default(struct cmap *cm, wint_t def)
155 old = cm->cm_def;
156 cm->cm_def = def;
157 cm->cm_havecache = false;