Lines Matching refs:cm
51 struct cmap *cm;
53 cm = malloc(sizeof(*cm));
54 if (cm == NULL)
56 cm->cm_root = NULL;
57 cm->cm_def = CM_DEF_SELF;
58 cm->cm_havecache = false;
59 cm->cm_min = cm->cm_max = 0;
60 return (cm);
68 cmap_add(struct cmap *cm, wint_t from, wint_t to)
72 cm->cm_havecache = false;
74 if (cm->cm_root == NULL) {
81 cm->cm_root = cmn;
82 cm->cm_min = cm->cm_max = from;
86 cmn = cm->cm_root = cmap_splay(cm->cm_root, from);
107 if (from < cm->cm_min)
108 cm->cm_min = from;
109 if (from > cm->cm_max)
110 cm->cm_max = from;
111 cm->cm_root = ncmn;
121 cmap_lookup_hard(struct cmap *cm, wint_t ch)
124 if (cm->cm_root != NULL) {
125 cm->cm_root = cmap_splay(cm->cm_root, ch);
126 if (cm->cm_root->cmn_from == ch)
127 return (cm->cm_root->cmn_to);
129 return (cm->cm_def == CM_DEF_SELF ? ch : cm->cm_def);
137 cmap_cache(struct cmap *cm)
142 cm->cm_cache[ch] = cmap_lookup_hard(cm, ch);
144 cm->cm_havecache = true;
154 cmap_default(struct cmap *cm, wint_t def)
158 old = cm->cm_def;
159 cm->cm_def = def;
160 cm->cm_havecache = false;