blob: 5bb67cf6debdf4e6414e954608728d27d47de376 [file] [edit]
#ifndef AUTOCORRECT_H
#define AUTOCORRECT_H
/* An empirically derived magic number */
#define AUTOCORRECT_SIMILARITY_FLOOR 7
#define AUTOCORRECT_SIMILAR_ENOUGH(x) ((x) < AUTOCORRECT_SIMILARITY_FLOOR)
enum autocorrect_mode {
AUTOCORRECT_HINT,
AUTOCORRECT_NEVER,
AUTOCORRECT_PROMPT,
AUTOCORRECT_IMMEDIATELY,
AUTOCORRECT_DELAY,
};
/**
* `mode` indicates which action will be performed by autocorrect_confirm().
* `delay` is the timeout before autocorrect_confirm() returns, in tenths of a
* second. Use it only with AUTOCORRECT_DELAY.
*/
struct autocorrect {
enum autocorrect_mode mode;
int delay;
};
/**
* Resolve the autocorrect configuration into `conf`.
*/
void autocorrect_resolve(struct autocorrect *conf);
/**
* Interact with the user in different ways depending on `conf->mode`.
*/
void autocorrect_confirm(struct autocorrect *conf, const char *assumed);
#endif /* AUTOCORRECT_H */