Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

New version: 4.5.03

49 views
Skip to first unread message

S.E. Mitchell

unread,
Feb 17, 2025, 3:39:37 PMFeb 17
to TSEPro Support
https://semware.com/files/tse-pro-install/tse-setup-4.50.4.zip

Ignore the read.me date - it should be: 17 Feb 2025 :(

regex find failed syntax error sets internal errorlevel, which
can be queried via DosIOResult(). Thanks to Carlo Hogeveen for
the suggestion.

If you did a large block operation during NON_EDIT events, you
would not always get completion feedback. This has been fixed.
Thanks to Carlo Hogeveen for the report.

User variable SearchCurrentDirectory now defaults to off. In
response to many private emails I've gotten regarding this
behavior.

EditFile("nodir\nofile"), even if "nodir" does not exist, will
open "nodir\nofile". Fixed, and added to sanity. Thanks to
Carlo Hogeveen for the report.

Added:
bool RepeatFindForw()
bool RepeatFindBack()

Repeats the last Find() command in the indicated direction.

Also, in List()/lList() windows, <f3> and <shift f3> invoke
RepeatFindForw() and RepeatFindBack(), respectively.
Thanks to Eckhard Hillmann for the suggestion.

S.E. Mitchell

unread,
Feb 17, 2025, 3:43:41 PMFeb 17
to TSEPro Support
The actual URL should be:
https://semware.com/files/tse-pro-install/tse-setup-4.50.3.zip
(Never do anything requiring accuracy when grandkids are around!)
--

Carlo Hogeveen

unread,
Feb 17, 2025, 5:48:42 PMFeb 17
to sem...@googlegroups.com

> User variable SearchCurrentDirectory now defaults to off. In
> response to many private emails I've gotten regarding this
> behavior.

Your grandkids also made you email the opposite of what you intended, methinks.
In the read.me too, but that can be repaired in the next release along with the wrong current release date.

Carlo



Carlo Hogeveen

unread,
Feb 17, 2025, 8:23:56 PMFeb 17
to sem...@googlegroups.com

Sammy,

Am I imagining things or did you also make undocumented changes?

For example, so far I saw the following:
1.
The installation mainly uses ASCII type borders, and the second screen uses blocks in borders too.
2.
After installation, single-line borders are thicker than they were in TSE v4.50.2.
3.
The ASCII Chart menu shows different character mappings for control characters.
4.
In the configuration screen for selecting a new editing color for "Text - Normal":
4.a.
The border of the left pane became double-lined.
4.b.
Different characters are used for the mouse bars on the right.
4.c
The bracketed up-arrow in the top-right corner is a different character.
5.
Only at a certain Courier New font size, for me 20, vertical-single-line-characters in a border show a tiny break between lines.

So I found nothing actually harmful, but for what it is worth, I liked the thinner and unbroken border lines better.

Carlo



S.E. Mitchell

unread,
Feb 17, 2025, 9:25:20 PMFeb 17
to sem...@googlegroups.com
I would like to say you are imagining things, but I guess not :(
I have fixed the problems - I think :(
I wish there was a way to test for this in the Sanity macro, but I
can't think of one.
--
Sammy
> --
>
> ---
> 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/000e01db81a3%24c5d2cae0%24517860a0%24%40ecarlo.nl.

Carlo Hogeveen

unread,
Feb 18, 2025, 4:13:44 AMFeb 18
to sem...@googlegroups.com

> I have fixed the problems - I think :(

I can confirm with relief, that 4.50.4 reverts all the undocumented changes I reported for 4.50.3.
Thanks,

Carlo



Carlo Hogeveen

unread,
Feb 18, 2025, 6:41:20 AMFeb 18
to sem...@googlegroups.com

> Added:
> bool RepeatFindForw()
> bool RepeatFindBack()
> Repeats the last Find() command in the indicated direction.

What is the added value of the above new commands over the below existing command (which has 4 possible option flags)?
bool RepeatFind(_FORWARD_)
bool RepeatFind(_BACKWARD_)

Carlo



Carlo Hogeveen

unread,
Feb 18, 2025, 7:44:53 AMFeb 18
to sem...@googlegroups.com

I have tested the 3 improvements/bugs that I suggested/reported, and they now all work great.
Thanks!

Carlo



S.E. Mitchell

unread,
Feb 18, 2025, 4:36:00 PMFeb 18
to sem...@googlegroups.com
Only commands without parameters can be in cmdmaps.
For a feature I wanted to add, I needed a repeat find forward and a
repeat find backwards command.
Also, searching in certain kinds of lists requires a little extra machinery.
So I added them, so that I could use them in the list() cmdmaps.

A new feature in 4.50.4 that I forgot to mention, is that in lists(),
<f3> repeats the previous search in a forward direction, and <shift
f3> repeats the previous search in a backwards direction.
> --
>
> ---
> 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/000b01db81fa%2405748110%24105d8330%24%40ecarlo.nl.

Carlo Hogeveen

unread,
Feb 18, 2025, 5:30:23 PMFeb 18
to sem...@googlegroups.com

Sammy,

Sorry to grill you further, but you raised a new question.
And I am documenting this, so your wisdom will eventually be passed on.

> Also, searching in certain kinds of lists requires a little extra machinery.

You seem to be implying that "a little extra machinery" is INSIDE the new commands.
If so,
- 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?

Carlo



S.E. Mitchell

unread,
Feb 18, 2025, 9:34:56 PMFeb 18
to sem...@googlegroups.com
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.

Carlo Hogeveen

unread,
Feb 19, 2025, 5:48:59 AMFeb 19
to sem...@googlegroups.com

I do not see additional behavior or side-effects that need to be documented either.
Thanks,

Carlo



Reply all
Reply to author
Forward
0 new messages