-to contain a given string. Buffer 0 is the displayed value of the field; other
-numbered buffers may be allocated by applications through the \fBnbuf\fR
-argument of (see \fBform_field_new\fR(3X)) but are not manipulated by the forms
-library. The function \fBfield_buffer\fR returns the address of the buffer.
-Please note that this buffer has always the length of the buffer, that means
-that it may typically contain trailing spaces. If you entered leading spaces
-the buffer may also contain them. If you want the raw data, you must write your
+to contain a given string:
+.RS 3
+.bP
+Buffer 0 is the displayed value of the field.
+.bP
+Other numbered buffers may be allocated by applications through the \fBnbuf\fR
+argument of (see \fBform_field_new\fR(3X))
+but are not manipulated by the forms library.
+.RE
+.PP
+The function \fBfield_buffer\fR returns a pointer to
+the contents of the given numbered buffer:
+.RS 3
+.bP
+The buffer contents always have the same length,
+and are padded with trailing spaces
+as needed to ensure this length is the same.
+.bP
+The buffer may contain leading spaces, depending on how it was set.
+.bP
+The buffer contents are set with \fBset_field_buffer\fP,
+or as a side effect of any editing operations on the corresponding field.
+.bP
+Editing operations are based on the \fIwindow\fP which displays the field,
+rather than a \fIstring\fP.
+The window contains only printable characters, and is filled with blanks.
+If you want the raw data, you must write your