Grill away :)
>>is there behavior or are there side-effects that a user of
>>RepeatFindForw() and RepeatFindBack() needs to be aware of?
>>are there other considerations than cmdmap to (not) use
>>RepeatFindForw() and RepeatFindBack() inside or outside a list?
I can't think of anything.
I'll show the actual code.  If this does not
answer all your questions, I'm happy to try and answer more.
The implementation of the repeat commands when editing a file:
int APPCALL cmRepeatFind(void) {
    return Repeat(0);
}
int APPCALL cmRepeatFind2(FIND_FLAG_TYPE flag) {
    return Repeat(flag);
}
int APPCALL cmRepeatFindForw(void) {
    return Repeat(_FORWARD_);
}
int APPCALL cmRepeatFindBack(void) {
    return Repeat(_BACKWARD_);
}
The implementation of the new repeat commands when in a list() or llist():
constant ssNONE         =   0x00,
         ssREPEAT       =   0x01,
         ssREPEATBACK   =   0x02
/***************************************************************************
  Don't allow finds on the compressed view 'occurrences' line.
 ***************************************************************************/
integer proc FindSearchString(string find_options)
    integer width, found
    // handle help
    if speedsearch_help
        return (FindHelpString(findstr, find_options))
    endif
    // handle view finds display
    if DisplayMode() == _DISPLAY_FINDS_ and GetBufferId() == Query(ViewFindsId)
        return (FindViewFindsString(findstr, find_options))
    endif
    // regular old find - fudge tab for Loaded Macros menu
    width = Set(TabWidth, 1)
    found = lFind(findstr, find_options)
    Set(TabWidth, width)
    return (found)
end
proc SpeedSearch(integer flags)
    string find_options[4]
    integer save_row
    if listflags & _ENABLE_SEARCH_
        find_options = iif(listflags & _ANCHOR_SEARCH_, "^i", "i")
        if flags & ssREPEATBACK
            find_options = find_options + "b"
        else
            find_options = find_options + iif(flags & ssREPEAT, '+', 'g')
        endif
        if listflags & _BLOCK_SEARCH_
            find_options = find_options + "l"
        endif
        loop
            search_active = TRUE
            if Length(findstr) and FindSearchString(find_options)
            // We need to turn off the block so updatedisplay will use
proper attribute.
                BufferVideo()
                PushBlock()
                UnmarkBlock()
                save_row = CurrRow()
                ScrollToCenter()
                if CurrRow() <> save_row
                    UpdateDisplay(_WINDOW_REFRESH_)
                endif
                _cmHiLiteFoundText(0)
                PopBlock()
                UnBufferVideo()
                break
            elseif (flags & (ssREPEAT|ssREPEATBACK))
                break
            elseif not DecFindStr()
                UpdateDisplayNoBlock(_CLINE_REFRESH_)
                search_active = FALSE
                break
            endif
        endloop
    endif
end
proc RepeatSearch()
    SpeedSearch(ssREPEAT)
end
proc RepeatSearchBack()
    SpeedSearch(ssREPEATBACK)
end
In the cmdmap:
    [RepeatFindForw] RepeatSearch()
    [RepeatFindBack] RepeatSearchBack()
> --
>
> ---
> You received this message because you are subscribed to the Google Groups "SemWare TSE Pro text editor" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to 
semware+u...@googlegroups.com.
> To view this discussion visit 
https://groups.google.com/d/msgid/semware/000101db8254%24b0c20290%24124607b0%24%40ecarlo.nl.