mirror of
https://github.com/rkd77/elinks.git
synced 2024-12-04 14:46:47 -05:00
viewer: Document some members of struct form_state.
The new comments describe how the members were apparently intended to be used. However, the implementation does not actually work when CONFIG_UTF_8 is defined, and the current semantics do not even allow an efficient implementation of long (mostly scrolled out) strings.
This commit is contained in:
parent
527898687a
commit
a8c573a174
@ -37,11 +37,31 @@ struct form_state {
|
|||||||
int position;
|
int position;
|
||||||
enum form_type type;
|
enum form_type type;
|
||||||
|
|
||||||
|
/* For FC_TEXT, FC_PASSWORD, and FC_FILE, @value is the text
|
||||||
|
* string that the user can edit. The string is null-terminated;
|
||||||
|
* its length is not stored separately. The size of the buffer
|
||||||
|
* is not stored anywhere; extending the string always requires
|
||||||
|
* calling realloc(). The string is not normally allowed to grow
|
||||||
|
* past @form_control.maxlength bytes (not counting the null),
|
||||||
|
* but there may be ways to get longer strings. */
|
||||||
unsigned char *value;
|
unsigned char *value;
|
||||||
|
/* For FC_TEXT, FC_PASSWORD, and FC_FILE, @state is the byte
|
||||||
|
* position of the insertion point in @value.
|
||||||
|
* For FC_CHECKBOX and FC_RADIO, @state is 1 or 0.
|
||||||
|
* For FC_SELECT, @state is the index of the selected item
|
||||||
|
* in @form_control.labels. */
|
||||||
int state;
|
int state;
|
||||||
#ifdef CONFIG_UTF_8
|
#ifdef CONFIG_UTF_8
|
||||||
|
/* For FC_TEXT, FC_PASSWORD, and FC_FILE, @state_cell is the
|
||||||
|
* number of cells needed for the text before the insertion
|
||||||
|
* point. (For FC_PASSWORD, each character is one cell.)
|
||||||
|
* When CONFIG_UTF_8 is not defined, @state_cell is assumed
|
||||||
|
* to be the same as @state. */
|
||||||
int state_cell;
|
int state_cell;
|
||||||
#endif /* CONFIG_UTF_8 */
|
#endif /* CONFIG_UTF_8 */
|
||||||
|
/* For FC_TEXT, FC_PASSWORD, and FC_FILE, @vpos is the number
|
||||||
|
* of cells that scrolling has hidden at the left. Thus, the
|
||||||
|
* X offset of the cursor is @state_cell - @vpos. */
|
||||||
int vpos;
|
int vpos;
|
||||||
int vypos;
|
int vypos;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user