Ok, here's how I can see this being done: 1. define a new field for the buffer object which is a char-table. 2. Populate this table in lisp code. 3. Use it instead of the case folding table as the translation table for searches, if some given variable is non-nil. Would that be desirable? We could also use the equivalence class folding table in addition to the case folding table. But that would (in the very least) involve changing the c search functions to take an additional argument. On 28 Jan 2015 20:23, "Stefan Monnier" wrote: > > Ok, I'll be getting on a 10 hour flight now, so I'll be looking into > > the case-fold machinery. > > I did have a brief look already and it doesn't seem horribly absurd. > > > Any other pointers that might be useful before I jump into no-internet > > land? :-) > > Just a warning: the case-tables are threatened. They should be replaced by > Unicode-aware (locale-dependent?) case folding for the 99.99% of the > cases, the only remaining case is the "ASCII upcase/downcase" operation > used in sendmail.el (IIRC), which we can hopefully solve some other way. > > > Stefan >