On 4/7/15 6:24 AM, Glenn Golden wrote:

> The second is important though, about the semantics of the phrase "already
> at the end of the history list".
> 
> Consider these three pre-call situations, all of which can occur in practice:
> 
>    (1)    offset == history_length-2
>    (2)    offset == history_length-1
>    (3)    offset == history_length
> 
> Think about these vis a vis your phrase "already at the end of the history
> list" and the meaning the reader may attach to it.  It seems to me that (1)
> and (3) have no wiggle room for interpretation: Situation (1) cannot 
> reasonably
> be interpreted as "already at the end of the history list" and (3) _must_ be
> interpreted as "already at the end of the history list". No wiggle room.
> 
> Now consider situation (2), and read the first sentence of your text above,
> as if you were a first-time reader. Ask yourself: Does the phrase "not already
> at the end of the history list" apply to (2)?
> 
> If the reader's answer is 'yes' (i.e. 'offset' is "not at the end of the
> history list") then your text correctly describes the function's actual
> behavior upon return: The value of 'offset' has been incremented and is now
> equal to history_length.  But if his answer is 'no', then he gets the
> wrong idea about the value of 'offset' upon return: He thinks it'll still
> be history_length-1, because according to your text it wasn't incremented.

The final sentence covers this.  There are really only two cases: does the
function return NULL or does it return a pointer to a history entry?  If
the function returns NULL, the history offset is at the end of the list.
It doesn't matter where it started; if the caller is interested in the
value before calling next_history() there are other functions that return
it.  (The value of the history offset is public, so an interested caller
can get it before or after the next_history() call.  You don't have to
guess.)  In this case, incrementing the history offset to the next entry
moves it to the end of the history list.

I agree that the wording can be improved to clarify that incrementing the
history offset can move it to the end.

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    [email protected]    http://cnswww.cns.cwru.edu/~chet/

_______________________________________________
Bug-readline mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-readline

Reply via email to