Discussion:
Dialog signature delimiter
(too old to reply)
bill
2021-04-19 01:18:44 UTC
Permalink
I saw the discussion by Bernd to try out Dialog on Windows.
So I tried it and I found that 40Tude works great on Windows 10!

I figured out how to do a random sig in 40tude Dialog.
You just create a file with "%" delimiters between each signature.
Then you set the signature using %randomsig:C:\path\randomsig.txt%

But how do you set a sig in Dialog that doesn't add the dash dash space?
--
Why are pencils and communism so similar?
They both only work on paper!
Grant Taylor
2021-04-19 02:49:30 UTC
Permalink
Post by bill
But how do you set a sig in Dialog that doesn't add the dash dash space?
Isn't the dash dash space supposed to be there by convention to formally
/ officially separate the body from the signature?
--
Grant. . . .
unix || die
bill
2021-04-19 03:03:34 UTC
Permalink
Post by Grant Taylor
Post by bill
But how do you set a sig in Dialog that doesn't add the dash dash space?
Isn't the dash dash space supposed to be there by convention to formally
/ officially separate the body from the signature?
I want the ending to be a salutation sans delimiter.
Like this

regards,
bill
Grant Taylor
2021-04-19 03:41:19 UTC
Permalink
Post by bill
I want the ending to be a salutation sans delimiter.
I'm not questioning your motivation.

I'm questioning the established standard. Specifically if my working
understanding is correct or not.
--
Grant. . . .
unix || die
Bernd Rose
2021-04-19 04:30:52 UTC
Permalink
[4D: Random signature functionality]
Post by Grant Taylor
Post by bill
I want the ending to be a salutation sans delimiter.
I'm not questioning your motivation.
I'm questioning the established standard. Specifically if my working
understanding is correct or not.
You are correct. The signature setup functionality of 40tude Dialog only
deals with anything /after/ the signature delimiter. (Which is added by
the program automatically, every time a signature is appended.)

Apart from reducing the text necessary to be written for each sig, this
approach also ensured a correctly formatted delimiter.

IIRC, some users tried to overrule this (about 20 years ago) by inserting
back-delete characters in the first position. (Which, IIRC, didn't work.)

Maybe somebody wrote a script, afterwards, to support "sig functionality"
without sig delimiter. Shouldn't be too much work with an OnBeforeSending
script, because the sig is inserted on the creation of the message (or
by explicitly selecting it while editing) and not just on sending.

Bernd
bill
2021-04-19 13:09:40 UTC
Permalink
Post by Bernd Rose
Shouldn't be too much work with an OnBeforeSending
script, because the sig is inserted on the creation of the message (or
by explicitly selecting it while editing) and not just on sending.
I love that you suggested this 40tude Dialog to someone else in another
recent thread as Dialog seems like a really nicely done Win10 newsreader!

I checked out this "OnBeforeSending" functionality and while I'm not a
programmer I can often string together examples to tweak and guess at
syntax.

I guess I could convert an existing *.ds script to create a custom sig but I
openly admit removing the sig delimiter isn't all that important. If it's
not just a simple switch it's probably not worth writing. I was just asking
if the option existed - that's all (as Dialog seems to have a LOT of nicely
thought out options!).

One OnBeforeSending script idea I have is one that gets rid of inconsistent
punctuation before sending because I often paste from a variety of web sites
which creates conflicting punctuation.
https://www.toptal.com/designers/htmlarrows/punctuation/

Hidden HTML characters such as zero width non joiner characters (‌)
(https://en.wikipedia.org/wiki/Zero-width_non-joiner) are sometimes in the
cut and paste results (aka ZWNJ) that I'd like Dialog to replace with a
space instead.

Likewise with horizontal elipses and the infamous em dash
(https://www.toptal.com/designers/htmlarrows/punctuation/horizontal-ellipsis/)
(https://www.toptal.com/designers/htmlarrows/punctuation/em-dash/)

And we're all familiar with smart quotes (also known as "curling quotes").
(https://www.typewolf.com/cheatsheet)
(https://dwheeler.com/essays/quotes-in-html.html)

While we can remove & replace them on Windows using Notepadd++
(https://stackoverflow.com/questions/12124434/easiest-way-to-convert-smart-curly-quotes-to-dumb-straight-quotes-in-notepad)

It would be nice for Dialog OnBeforeSending script to do it for us.
Convert HTML character " " to "'"
Convert HTML character "༌" to "'"
Convert HTML character " " to "'"
Convert HTML character "​" to "'"
Convert HTML character "‌" to "'"
Convert HTML character "‌" to '&'
Convert HTML character "‍" to "'"
Convert HTML character "‑" to "'"
Convert HTML character "‘" to "'"
Convert HTML character "‘" to "'"
Convert HTML character "’" to "'"
Convert HTML character "’" to "'"
Convert HTML character "“" to '"'
Convert HTML character "“" to '"'
Convert HTML character "”" to '"'
Convert HTML character "”" to '"'
Convert HTML character "…" to ' '
Convert HTML character " " to "'"
Convert HTML character "⁠" to "'"
Convert HTML character "" to "."

There is a script I found somewhere that replaced German characters
but I haven't modified it yet to replace the HTML characters above.
(http://dialog.datalist.org:80/scripts/ScriptreplaceUmlaut.html)

It's called "StringReplace" and it replaces characters using
s:=StringReplace(s,'oldcharacter','newcharacter');

But I haven't figured out yet how to feed it the HTML characters:
s:=StringReplace(s,' ',''');
--
Police are searching for a robber who's stealing blunt pencils.
Quite frankly, they cant see the point
Bernd Rose
2021-04-19 18:29:34 UTC
Permalink
Post by bill
One OnBeforeSending script idea I have is one that gets rid of inconsistent
punctuation before sending
[...]
Post by bill
There is a script I found somewhere that replaced German characters
but I haven't modified it yet to replace the HTML characters above.
(http://dialog.datalist.org:80/scripts/ScriptreplaceUmlaut.html)
It's called "StringReplace" and it replaces characters using
s:=StringReplace(s,'oldcharacter','newcharacter');
s:=StringReplace(s,' ',''');
There's more to it. Depending on your permitted/restricted encoding
settings and the characters contained in your message before the script
fires up, the text may be encoded in quite a few different ways.
The replacement script has to check the encoding and act accordingly.
This means, every character, which shall be replaced, needs /several/
replacement rules. Maybe okay for only few characters, but /not/ for
your very broad approach.

The old German umlaut replacing script was meant for "near ASCII"
text. It has to be tweaked and expanded for more complex encodings,
if above condition is not met. - Even for these few replacement cases...

Bernd
bill
2021-04-19 19:25:50 UTC
Permalink
Post by Bernd Rose
There's more to it. Depending on your permitted/restricted encoding
settings and the characters contained in your message before the script
fires up, the text may be encoded in quite a few different ways.
I don't think there is more to it since it's ALWAYS fixed by Notepad++
I posted the current Notepad++ shortcuts.xml script in the signature below.

That ALWAYS works so I do think it's as simple as what Notepad++ does
(at least for the most common set of HTML special characters).

Besides, once we have a working template, adding more on a case by case
basis should be easy I would think (that's how I made the shortcuts.xml).
(https://stackoverflow.com/questions/12124434/easiest-way-to-convert-smart-curly-quotes-to-dumb-straight-quotes-in-notepad)
Post by Bernd Rose
The replacement script has to check the encoding and act accordingly.
This means, every character, which shall be replaced, needs /several/
replacement rules. Maybe okay for only few characters, but /not/ for
your very broad approach.
Actually there are only 20 that I commonly run into (see sig below).
But all I need is two or three working as adding more should be easy.
Post by Bernd Rose
The old German umlaut replacing script was meant for "near ASCII"
text. It has to be tweaked and expanded for more complex encodings,
if above condition is not met. - Even for these few replacement cases...
Yes. I believe you are correct.

As I said I am not a programmer so I generally copy and tweak as needed.
I haven't yet been able to get even ONE subsitution of HTML characters
to work in the OnBeforeSending script.

The first HTML character substitution that I tried (and failed) was the ZWNJ
(https://karrer.net/tmp/zwnj.html)

I can't seem to get the syntax right yet in that ScriptreplaceUmlaut.ds script.
--
See "Script for Bernd" in the Win10 Notepad++ shortcuts.xml file below.

<?xml version="1.0" encoding="UTF-8" ?>
<NotepadPlus>
<InternalCommands />
<Macros>
<Macro name="Trim Trailing Space and Save" Ctrl="no" Alt="yes" Shift="yes" Key="83">
<Action type="2" message="0" wParam="42024" lParam="0" sParam="" />
<Action type="2" message="0" wParam="41006" lParam="0" sParam="" />
</Macro>

<Macro name="Remove Smart Quotes" Ctrl="no" Alt="no" Shift="no" Key="0">
</Macro>

<Macro name="Script for Bernd" Ctrl="no" Alt="no" Shift="no" Key="0">

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2018;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2019;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x201C;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam='&quot;' />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x201D;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam='&quot;' />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x200C;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam='&amp;' />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x200B;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x200C;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x200D;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2060;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#xFEFF;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00A0;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2007;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x202F;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2011;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0F0C;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2018;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2019;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x201C;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam='&quot;' />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x201D;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam='&quot;' />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

<Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2026;" />
<Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1602" wParam="0" lParam="0" sParam='&amp;' />
<Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
<Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

</Macro>
</Macros>
<UserDefinedCommands>
<Command name="Get PHP help" Ctrl="no" Alt="yes" Shift="no" Key="112">https://www.php.net/$(CURRENT_WORD)</Command>
<Command name="Wikipedia Search" Ctrl="no" Alt="yes" Shift="no" Key="114">https://en.wikipedia.org/wiki/Special:Search?search=$(CURRENT_WORD)</Command>
<Command name="Open file in another instance" Ctrl="no" Alt="yes" Shift="no" Key="117">$(NPP_FULL_FILE_PATH) $(CURRENT_WORD) -nosession -multiInst</Command>
</UserDefinedCommands>
<PluginCommands />
<ScintillaKeys />
</NotepadPlus>
Bernd Rose
2021-04-19 20:01:33 UTC
Permalink
Post by bill
Post by Bernd Rose
There's more to it. Depending on your permitted/restricted encoding
settings and the characters contained in your message before the script
fires up, the text may be encoded in quite a few different ways.
I don't think there is more to it since it's ALWAYS fixed by Notepad++
Notepad++ doesn't come into play, here. You send a message from Dialog
Editor. And depending on the characters found (in the current message),
Dialog checks its encoding settings and formats the text to 7-Bit-ASCII,
Windows-1250 or its siblings, CP850 or its siblings, UTF-7, UTF-8,...
Every message /may/ be sent with a different encoding.

The OnBeforeSending script needs to replace characters formatted in one
of the afore mentioned encodings. The letter ä, for instance may be
found in this text buffer as char 0x84, 0xE4, word 0xC3A4 and in several
other ways. Each variant has to be replaced, if the source encoding is
not fixed. (Which in itself usually wouldn't be a good idea, either.)

Moreover, replacing a character 0x84 with (e.g.) ae under the assumption,
it would have the meaning ä, could be wrong, altogether. If the source
encoding happens to be Ansi-1252, this byte position represents the lower
curly quotation marks.

Bernd
bill
2021-04-21 00:42:28 UTC
Permalink
Post by Bernd Rose
Notepad++ doesn't come into play, here.
Notepad++ solves the problem but it's an extra step I was trying to remove.
It replaces the HTML character "&#x201C;" with the HTML character "&quot;".
Post by Bernd Rose
You send a message from Dialog Editor.
Thanks. I was hoping maybe Dialog could be set to edit with Notepad++.
Or that Dialog could post process to substitute characters as defined.
Post by Bernd Rose
And depending on the characters found (in the current message),
Dialog checks its encoding settings and formats the text to 7-Bit-ASCII,
Windows-1250 or its siblings, CP850 or its siblings, UTF-7, UTF-8,...
It's a formatting problem that the punctuation isn't consistent when it
comes from multiple sources (some of which use these "pretty" characters
while others don't).

It is best solved in the text editor.
Or cleaned up just before sending the message.
Post by Bernd Rose
Every message /may/ be sent with a different encoding.
The encoding isn't the problem so much as the inconsistent punctuation.

Some pasted results from multiple web pages have fancy HTML punctuation
while others do not.

I couldn't get the syntax to work even on the simplest conversion (that of
the HTML smart quote to an HTML straight quote) so I'll just give up as
Dialog seems like a nice editor even without this feature.

Replace the HTML character "&#x201C;" with the HTML character "&quot;".
--
Why do pencils shave?
To look sharp.
Bernd Rose
2021-04-21 04:21:08 UTC
Permalink
Post by bill
Post by Bernd Rose
Every message /may/ be sent with a different encoding.
The encoding isn't the problem so much as the inconsistent punctuation.
Best-fit-selected charset and encoding /are/ your problems.

Internally, 40tude Dialog uses 16 bit Unicode for its edit buffer. So,
whatever you paste into the edit window will be translated to Unicode
characters, first. (Even the most simple ASCII-7 characters.) But the
OnBeforeSending script fires up /after/ the charset is selected, the
text is converted to the best-fit target charset, and the message is
already encoded.

Therefore, any replacement rule in OnBeforeSending needs to take into
account /every/ charset and encoding style not explicitly forbidden in
your 40tude Dialog settings. - Like I already said: The Umlaut-script
makes assumptions about these settings, which are not advisable in the
first place. - Except, when the ones using 40tude Dialog with this script
carefully only write and copy/paste with a narrow, closely defined set
of characters that map to only /one and always the same/ charset.

Bernd
bill
2021-04-21 21:30:57 UTC
Permalink
Post by Bernd Rose
Best-fit-selected charset and encoding /are/ your problems.
It's complicated so I don't know if I understand yet but I think I
understand your final point which is I'm not the one to make it work. ;-/

I can always stick with using Notepad++ then as my intermediary message
editor whenever I'm pasting together cites from multiple websites which have
inconsistent punctuation (eg smart quotes plus straight quotes) because
Notepad++ can convert curly quotes to straight quotes (and lots of others
that I added one by one to the shortcuts.xml file as I found them ).

In trying to understand your advice I had to look up what unicode was which
is essentially an encoding that handles hundreds of thousands of characters.

What I gather from what you imparted on me was that when I paste text copied
from various web pages into Dialog, the internal Dialog editor translates
everything I paste into 16 bit unicode characters.

For example a curly quote ends up as a 16-bit unicode curly quote.
And a straight quote ends up as a 16-bit unicode straight quote.

At this point the text is inconsistent (curly mixed with straight) even as
the encoding is consistent from what you said (ie it's all unicode now).

Normally just before sending I would cut and paste this into Notepad++ and
then I run the conversion of all odd characters to basic characters which
gives me the consistency that I want. Then I cut and paste that consistent
text back into Dialog and send the message.

Since you said the OnBeforeSending script fires up /after/ the message is
already encoded, I was just hoping the OnBeforeSending script could convert
the now unicode curly quotes to straight quotes in unicode.

I admit I don't understand why Dialog can't do that but I do understand your
overall advice which is that it's very difficult and therefore not a task
I'm equipped to do (since I don't even understand why it can't work yet).

I'll just give up but I do appreciate that you helped advise me (I think I'm
way out of my league as I don't understand why the encoding matters since
it's all unicode at the time that I need to convert curly quotes to straight
quotes).

Nonetheless, it's ok to have Notepad++ in the middle which does the
conversion for me of the unicode curly quotes to the unicode straight
quotes.

-1- I cut and paste into the Dialog editor from a variety of web pages
-2- Just before sending I cut and paste the Dialog message into Notepad++
-3- Notepad++ converts unicode curly quotes to unicode straight quotes
-4- I paste that now consistent punctuation into Dialog to send off
--
Why can't pencils move?
Because they are stationery
Bernd Rose
2021-04-22 18:50:23 UTC
Permalink
On Wed, 21st Apr 2021 23:30:57 +0200, bill wrote:

[Multisource Copy&Paste: Snipped process description, correct assumptions]
Post by bill
Since you said the OnBeforeSending script fires up /after/ the message is
already encoded, I was just hoping the OnBeforeSending script could convert
the now unicode curly quotes to straight quotes in unicode.
At the time when OnBeforeSending fires up, the text will be encoded in about
any imaginable charset, but /not/ in 16-bit Unicode.

As you type (or Copy&Paste), 40tude Dialog continuously analyzes the text
buffer. It checks, which characters are contained in the text buffer and
compares them against the list of permitted charsets:
Settings -> General_Settings -> Charsets -> Use_best_matching_charset_out_of

It internally reduces the list of charsets to those, that have the /least/
number of (different) characters contained in the text buffer, which can not
be encoded. As long, as you leave Unicode-encoding charsets like UTF-7 and
UTF-8 in this list, the number of un-encodable characters should be zero.
From the remaining list of charsets, it picks the first.

When you watch the "Status" field in the upper area of the Compose Editor
window, you see the charset adjusting to the text you type. Until now,
my current message shows "us-ascii", because it contains no special chars,
at all. When I type the German umlaut ä, though, the charset listed in the
Status field immediately changes to "iso-8859-1" (aka Latin-1), which is
the first completely fitting charset in /my/ charset list. In your case,
a different charset might have been selected. If I insert curly quotation
marks („…“), the charset listed in Status changes again. (Now to UTF-8 in
my case.)

OnBeforeSending would have encountered "us-ascii" formatted text, when I
would have sent only the first couple of lines, "iso-8859-1" later on, and
finally UTF-8.

If the script contained a replacement rule from ä to ae, that is consistent
to "iso-8859-1", it would say: Replace byte code 0xE4 with ae. Consistent
to UTF-8, OTOH, it needs to replace the 2-byte code 0xC3 0xA4.

To avoid creating garbage by the replacements, OnBeforeSending would need
to detect the current charset /and/ have replacement rules for every charset
not explicitly disabled. Moreover, the script code would need to detect and
spare all header lines and any encoded attachment of the message.

One solution for the charset detection problem would be, to disable all
but one charset (from the list of permitted charsets). If you ensure, that
you always type plain characters from the range of the lower 7-bit ASCII
characters, this would be fine. But extremely unlikely. Therefore, the
fixed charset would need to be ready for virtually any character. This
just leaves UTF-7 and UTF-8. (Both have their own problems when used in
40tude Dialog with very high Unicode character planes. - But that's a
different story and solvable with a set of specific scripts.)

But if you set UTF-7 or UTF-8 as your only permitted charset, you post
most of your messages with unnecessary overhead. This is - historically -
massively frowned upon and will get you loads of "friendly suggestions"
to configure your Newsreader in a more appropriate way.

Apart from such hints, you'd still need to set up all those replacement
rules. To make things worse, both UTF-7 and UTF-8 are variable wide
character encoding schemes. Your replacement rules would not only need
to replace sometimes one, sometimes more bytes for a single character.
The replacement function would need to evaluate the whole text stream
to not mix up multi-byte position start points.

I strongly suggest to leave this idea be...

Bernd
bill
2021-04-22 19:13:21 UTC
Permalink
Post by Bernd Rose
At the time when OnBeforeSending fires up, the text will be encoded in about
any imaginable charset, but /not/ in 16-bit Unicode.
Oh my. OK. That's my fault for not understanding that key complication!
I apologize that this is all very confusing to me.
It just goes to prove I'm way out of my league and I need to let it rest.
Post by Bernd Rose
As you type (or Copy&Paste), 40tude Dialog continuously analyzes the text
buffer. It checks, which characters are contained in the text buffer and
Settings -> General_Settings -> Charsets -> Use_best_matching_charset_out_of
Oh. I see. I think. OK. That's why it's complicated I guess.

The character set in Dialog's editor can keep changing as I paste from
various web sites (depending on what's used by those various web sites).
Post by Bernd Rose
It internally reduces the list of charsets to those, that have the /least/
number of (different) characters contained in the text buffer, which can not
be encoded. As long, as you leave Unicode-encoding charsets like UTF-7 and
UTF-8 in this list, the number of un-encodable characters should be zero.
From the remaining list of charsets, it picks the first.
Interesting that it picks the first out of the remainders.
Nice to know.
Post by Bernd Rose
When you watch the "Status" field in the upper area of the Compose Editor
window, you see the charset adjusting to the text you type. Until now,
my current message shows "us-ascii", because it contains no special chars,
at all.
I had not even noticed that "Status" field just below the Subject,
Newsgroup, and Email to headers! Thanks for pointing that out.

Mine says "Not yet sent (Charset utf-8)" at this very instant.
Post by Bernd Rose
In your case, a different charset might have been selected.
Thanks for explaining that it depends on what is in my list.
And in what order.

I just removed all your curly quotes and the Status changed instantly to
"Not yet sent (Charset iso8859-1)" as you implied it would.

I removed just now the German characters you typed and the Status field
instantly changed to "Not yet sent (Charset us-ascii)" (as you said it
would).
Post by Bernd Rose
To avoid creating garbage by the replacements, OnBeforeSending would need
to detect the current charset /and/ have replacement rules for every charset
not explicitly disabled.
Yikes. I get it now.

I had not realized the Dialog editor character set kept changing depending
on the characters that were in the actual message (and further depending on
what was available in the encoding list and even further what order that
list was in).

You're right. It's way out of my league for sure!
Post by Bernd Rose
Moreover, the script code would need to detect and
spare all header lines and any encoded attachment of the message.
Aurgh. Even worse. I see. It gets more complex by the minute. :-0
Post by Bernd Rose
One solution for the charset detection problem would be, to disable all
but one charset (from the list of permitted charsets). If you ensure, that
you always type plain characters from the range of the lower 7-bit ASCII
characters, this would be fine. But extremely unlikely.
Hmmmmmmm... I do NOT need fancy characters.
I only need what I can type on a standard keyboard.
I wonder if that might work for me?
Post by Bernd Rose
Therefore, the
fixed charset would need to be ready for virtually any character. This
just leaves UTF-7 and UTF-8. (Both have their own problems when used in
40tude Dialog with very high Unicode character planes. But that's a
different story and solvable with a set of specific scripts.)
I don't know what a "character plane" is but I could get away with just the
English alphabet plus basic punctuation.
Post by Bernd Rose
But if you set UTF-7 or UTF-8 as your only permitted charset, you post
most of your messages with unnecessary overhead. This is - historically -
massively frowned upon and will get you loads of "friendly suggestions"
to configure your Newsreader in a more appropriate way.
Oops. Oh well. There goes that idea. ;-/
Post by Bernd Rose
Apart from such hints, you'd still need to set up all those replacement
rules. To make things worse, both UTF-7 and UTF-8 are variable wide
character encoding schemes. Your replacement rules would not only need
to replace sometimes one, sometimes more bytes for a single character.
The replacement function would need to evaluate the whole text stream
to not mix up multi-byte position start points.
Ayayyai. I see. It's too complex for me.
Way too complex for me.

There's no way it would be worth the effort.
Even if I knew how to program.
Post by Bernd Rose
I strongly suggest to leave this idea be...
Wow. Thank you for that detailed explanation.
I strongly agree with you.

I learned a lot about how Dialog works (didn't even know about that Status)
where it's sending this (so far) as "Not yet sent (Charset us-ascii)" and
I'll leave it at that.

Let's drop this train of thought.
Thanks for all your patient advice (I accept everything you said!)

Regards,
bill
--
There were too many pencils that they made a whole state.
It was named Pencilvania.
VanguardLH
2021-04-19 19:58:16 UTC
Permalink
Post by bill
Post by Grant Taylor
Post by bill
But how do you set a sig in Dialog that doesn't add the dash dash space?
Isn't the dash dash space supposed to be there by convention to formally
/ officially separate the body from the signature?
I want the ending to be a salutation sans delimiter.
Like this
regards,
bill
That information is redundant as it is already provided in the From
header that your client specified. Know of any NNTP clients that do not
show the From header of each article? If there were, readers wouldn't
immediately know who was replying to whom, and instead have to drill
into a headers view to see the author of an article.

Your From header says you're bill. A signature saying you're bill is
redundant.
VanguardLH
2021-04-19 20:02:08 UTC
Permalink
Path: uni-berlin.de!fu-berlin.de!news.uzoreto.com!aioe.org!tKMeCZpOoHFkQLaFKeAqow.user.gioia.aioe.org.POSTED!not-for-mail
Newsgroups: news.software.readers
Subject: Dialog signature delimiter
Date: Mon, 19 Apr 2021 03:18:44 +0200
Organization: Aioe.org NNTP Server
Lines: 12
NNTP-Posting-Host: tKMeCZpOoHFkQLaFKeAqow.user.gioia.aioe.org
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
User-Agent: 40tude_Dialog/2.0.15.41 (51e03d8d.9.298)
X-Notice: Filtered by postfilter v. 0.9.2
Xref: uni-berlin.de news.software.readers:291046
I saw the discussion by Bernd to try out Dialog on Windows.
So I tried it and I found that 40Tude works great on Windows 10!
I figured out how to do a random sig in 40tude Dialog.
You just create a file with "%" delimiters between each signature.
Then you set the signature using %randomsig:C:\path\randomsig.txt%
But how do you set a sig in Dialog that doesn't add the dash dash space?
Without the sigdash delimiter line (dash dash newline), your signature
block is NOT a signature block. Instead you are adding a common block
of text to every post. Do you want a signature, or do you want to add
the same block of text to every one of your posts (which means it is
part of the body of your post, NOT a signature)? BernD gave a hint on
how to add a common block to the body of every post.

As I recall, and from previous searching, I never found the sigdash
delimiter was specified in any RFC. It is a de facto Usenet standard;
i.e., netiquette. When you add a /signature/, it is to be delimited by
the preceding sigdash delimiter line. You're asking how to add a
signature without adding a signature.
VanguardLH
2021-04-19 20:27:21 UTC
Permalink
Looks like you might be attempting to use the signature block as a cutsy
MOTD (message-of-the-day) function available in other NNTP clients, but
you also want to prevent other clients from blocking/hiding the sig
block by not marking your MOTD as a sig block.

If you were just duplicating your nym from your From header as a fake
signature block (no sigdash delimiter line), why would you be using a
random selector? Random sigs are to add changing sig content. In other
NNTP clients that have a MOTD feature, they still show that content as a
sig block; i.e., the MOTD content is after the sigdash line. The MOTD
content is usually off-topic to the discussion since obviously a random
sig selector cannot select sig content that is related to the
discussion.

Your later example showed you adding your name (duplicated from the From
header). No need to use a random sig selector for appending the same
name to every post. What are you really using random signatures for?
Yeah, I'm suspicious: a red flag when claiming to add the /same/ content
to every post, but doing so with a random sig selector. Adding the same
content doesn't involve randomness. Something seems untoward.

There's no point to using a random sig selector to add the same content
to every post.
bill
2021-04-21 00:49:00 UTC
Permalink
Post by VanguardLH
There's no point to using a random sig selector to add the same content
to every post.
Somehow you mixed up the random joke in the sig with the question itself.

The question was just how to make the salutation more personal.
The dashdashspace makes it less personal.

Not a big deal though as Dialog can't do it without effort which I'm not
willing to write just to make the "ciao" be more personal & less robotic.

Thanks for your advice,
bill
VanguardLH
2021-04-21 07:01:16 UTC
Permalink
Post by bill
Post by VanguardLH
There's no point to using a random sig selector to add the same
content to every post.
Somehow you mixed up the random joke in the sig with the question itself.
Who was it that mentioned %randomsig:<filepath>% in the starter post?
That 48% of your message was chaff unrelated to your inquiry?

Seems Bernd's mention of the OnBeforeSend event to create a script to
process your message before sending it would work. Years ago there was
an archive of user-written scripts which could be used as-is or
modified; however, the domain it was at before is locked out, so it is
unusable. Often I could find a script there that I could tweak for
another use.

If you are just adding "regards, Bill" to the end of your messages, how
often do you post where adding that content would become a major
nuisance? Sometimes I forget that I can type a lot faster than many
users, so it seems to me a trifle addition to dash off at the end of a
message. But, as mentioned, it is duplicate content since your nym is
already presented by the From header.

Instead of writing a script (for the OnBeforeSend event), perhaps easier
would be to write a custom script and assign it to a button that you add
to a toolbar. Then you just click on the toolbar button to add the
trailing text. My guess, and from the Help, is you would use:

Procedure PostKey( key: Word; Shift, Alt, Ctrl, Left, Right, Middle, Double,specialkey: Boolean);
//Simulates a key press in the currently active window

When you click the toolbar button, its custom script would issue
keystrokes in the current window (which should be the compose window
when you are writing a new message).

If you were looking for a simple on/off option to remove the sigdash
delimiter line (dash dash space newling) when adding a signature, no,
Dialog doesn't let you add a signature that is not delimited as a
signature.

https://en.wikipedia.org/wiki/Signature_block#Standard_delimiter

Since the sig block is often duplicated content or off-topic, many NNTP
clients have an option to hide the sig block. Dialog has this feature:
in the top row of the view pane, click the down-chevron at the top left,
select Message View Options, and select Suppress signatures. This
allows readers to eliminate such fluff to focus on the message itself.
Eliminating the sig delimiter line is usually a deliberate attempt to
prevent others from hiding your sig block. Lots of spamware does this.
For example, Avast will add, by default, their spam block at the end of
messages to promote their AV software, and they deliberately use an
invalid sig delimiter line to avoid reader clients from hiding the sig
block. They want to ensure as many readers see their spam as possible.

There is also a politeness factor. When replying to your posts, the
respondents should've have to keep trimming off your duplicated content.
NNTP clients should automatically strip off the signature when replying.
However, since you propose to not use the sig delimiter line, the
clients cannot strip off the superfluous content in replies. Some users
go nuts with ridiculously long signatures, use ASCII characters to
present stick images, add their contact info, and lots of other junk
that is not germaine to the topic. With a sig delimiter line, all that
fluff can be stripped from replies. Signatures should NOT be quoted in
a reply, but obviously there needs be a means to parse just what is the
sig block. The vast majority of signature content is fluff. Users of
NNTP clients that don't automatically strip sig blocks in replies, and
because most users are lazy and don't review and trim before they
submit, end up creating a mess of their replies.
Bernd Rose
2021-04-21 16:19:37 UTC
Permalink
Post by VanguardLH
Instead of writing a script (for the OnBeforeSend event), perhaps easier
would be to write a custom script and assign it to a button that you add
to a toolbar. Then you just click on the toolbar button to add the
trailing text.
[...]
Post by VanguardLH
When you click the toolbar button, its custom script would issue
keystrokes in the current window (which should be the compose window
when you are writing a new message).
You can't add scripts as toolbuttons to the compose window toolbars.
And if you add them to the main window toolbars, the compose window
does not have the focus while clicking on the button. ;-)

<Quotation moved (out of contentual reasons)>
Post by VanguardLH
If you are just adding "regards, Bill" to the end of your messages, how
often do you post where adding that content would become a major
nuisance?
One-liners could be inserted with auto-correction. This would probably be
the easiest approach.

There are several ways to add and activate auto-correction entries. The,
IMHO, most systematic one is opening the Spelling Options dialog from
SpellCheck -> Settings menu of a Compose window and then selecting the
Dictionaries button on the right bottom side of that dialog. In the
following list view, new custom dictionaries can be created or existing
ones selected and (de)activated. When a dictionary is selected, it can
be edited. An edit subdialog opens. The second tab enables to add/delete
or change autocorrection entries. if the entry: rb -> Regards, Bill
is added, then the text "rb " (please note the space; any other word
ending characters should work as well) will automatically be replaced
by "Regards, Bill".

Bernd
bill
2021-04-21 22:24:38 UTC
Permalink
Post by Bernd Rose
There are several ways to add and activate auto-correction entries.
I first tried this.

-1- Compose a message
-2- Spell check -> Settings -> Dictionaries -> New -> salutation -> OK
-3- Go back there & select salutation.ady & press the Edit button
-4- Select the "Auto-Correct Pairs" tab of the salutation.ady form
-5- Replace: rb[space] With: Regards,^Mbill -> OK -> OK -> OK
-6- Make sure you set Settings -> Save settings as default for new drafts
-7- To test, type "rb[space]" in a message & it should autocorrect

It's unusually tricky to get the spellcheck settings to remember but I got
that part figured out by trial and error (you have to set it for new
drafts).

And I never did get the "salutation.ady" to be an additional dictionary to
"a.ady" so I just edited "a.ady" instead (which works as well).

Interestingly the space after "rb[space]" didn't work but "bbb" worked as
well so that's fine too.

What was odd is that the control M didn't work for a carriage return as it
just added a "^M" instead but again that's easy to manually fix.

Assuming a manual fix of the control character this is what worked
-1- Compose a message
-2- Spell check -> Settings -> Custom Dictionary -> a.dy -> OK
-3- Spell check -> Settings -> Dictionaries -> select a.dy -> Edit
-4- Select the "Auto-Correct Pairs" tab of the salutation.ady form
-5- Replace: bbb With: Regards,^Mbill -> OK -> OK -> OK
-6- Make sure you set Settings -> Save settings as default for new drafts
-7- To test, type "bbb" in a message (sans quotes) & it should autocorrect

I'm gonna type the key sequence now and it will autocorrect instantly the
instant I put the space after the third sequential "b" character now.

Regards,^Mbill
--
I've been using up the ink in all the pens and all the lead in our pencils.
Makes my wife's Christmas wish list much shorter.
VanguardLH
2021-04-22 05:30:40 UTC
Permalink
Post by Bernd Rose
Post by VanguardLH
Instead of writing a script (for the OnBeforeSend event), perhaps
easier would be to write a custom script and assign it to a button
that you add to a toolbar. Then you just click on the toolbar
button to add the trailing text.
[...]
Post by VanguardLH
When you click the toolbar button, its custom script would issue
keystrokes in the current window (which should be the compose window
when you are writing a new message).
You can't add scripts as toolbuttons to the compose window toolbars.
And if you add them to the main window toolbars, the compose window
does not have the focus while clicking on the button. ;-)
Argh! A suggestion shot down. Guess bill will need to figure out the
OnBeforeSend event script, or your auto-correct suggestion.
Post by Bernd Rose
Post by VanguardLH
If you are just adding "regards, Bill" to the end of your messages,
how often do you post where adding that content would become a major
nuisance?
One-liners could be inserted with auto-correction. This would probably
be the easiest approach.
Did not know Dialog has an auto-correct feature. I knew it had an
on-the-fly spellcheck feature. I just looked there and, yep, there is
an AutoCorrect option. Guess the user has to edit the dictionary file
to add an auto-correct entry.
Post by Bernd Rose
There are several ways to add and activate auto-correction entries.
The, IMHO, most systematic one is opening the Spelling Options dialog
from SpellCheck -> Settings menu of a Compose window and then
selecting the Dictionaries button on the right bottom side of that
dialog. In the following list view, new custom dictionaries can be
created or existing ones selected and (de)activated. When a
dictionary is selected, it can be edited. An edit subdialog opens.
The second tab enables to add/delete or change autocorrection
entries. if the entry: rb -> Regards, Bill is added, then the text
"rb " (please note the space; any other word ending characters should
work as well) will automatically be replaced by "Regards, Bill".
Thanks for the info. Something I had not thought about, but don't
remember using the Auto-Correct button before. That would also allow
adding multiple entries to the dictionary to select from different
content blocks at the "bad" string position (which are NOT signatures).

This scheme does means other NNTP clients won't find the sigdash line to
strip it from replies. Unless the respondent reviews and trims their
message before submission, which is the typical scenario, the replies
end up with all the pseudo-sig fluff.

Of course, bill wanted "regards,\nbill" inserted into his message, but
auto-correct would add a string within the current line instead of
adding 2 lines. I take it \n (newline) cannot be included in the
auto-correct string.
bill
2021-04-22 13:12:39 UTC
Permalink
Post by VanguardLH
Argh! A suggestion shot down.
It seemed like a good idea to me! ;-/
Post by VanguardLH
Guess bill will need to figure out the
OnBeforeSend event script, or your auto-correct suggestion.
The OnBeforeSending script has the problem according to Bernd of complexity.
The AutoCorrect feature worked instantly but doesn't (yet) handle ^M (CR).
Post by VanguardLH
Post by Bernd Rose
One-liners could be inserted with auto-correction. This would probably
be the easiest approach.
Did not know Dialog has an auto-correct feature. I knew it had an
on-the-fly spellcheck feature.
Being new to Dialog I saw the spell checking menus in multiple places.
Sometimes it spell checked and sometimes it didn't spell check.

I finally figured out that you have to select the dictionary.
And you have to make sure you save the settings every time you visit them.
Post by VanguardLH
I just looked there and, yep, there is
an AutoCorrect option. Guess the user has to edit the dictionary file
to add an auto-correct entry.
What worked the first time was I created an autocorrect entry for three
subsequent b's in a row (I typed them but it autocorrected me!). ;-/

When I type the space after the three b's it converts it to Regards,^Mbill
I haven't yet figured out how to get the control M character to work.
Post by VanguardLH
Thanks for the info. Something I had not thought about, but don't
remember using the Auto-Correct button before. That would also allow
adding multiple entries to the dictionary to select from different
content blocks at the "bad" string position (which are NOT signatures).
This scheme does means other NNTP clients won't find the sigdash line to
strip it from replies. Unless the respondent reviews and trims their
message before submission, which is the typical scenario, the replies
end up with all the pseudo-sig fluff.
Of course, bill wanted "regards,\nbill" inserted into his message, but
auto-correct would add a string within the current line instead of
adding 2 lines. I take it \n (newline) cannot be included in the
auto-correct string.
I just set "aaa" to "Regards,\nbill" in the "a.dy" dictionary & saved it.
Now when I type aaa nothing happens but when I type triple-b it does this.

Regards,^Mbill
--
What do you call a pencil sharpener that can't sharpen pencils?
Broken
Bernd Rose
2021-04-22 20:13:44 UTC
Permalink
On Thu, 22nd Apr 2021 15:12:39 +0200, bill wrote:

[40tude text autocorrection]
Post by bill
What worked the first time was I created an autocorrect entry for three
subsequent b's in a row (I typed them but it autocorrected me!). ;-/
When I type the space after the three b's it converts it to Regards,^Mbill
I haven't yet figured out how to get the control M character to work.
While typing, any text is copied into the 16-bit Unicode formatted text
buffer I mentioned in an earlier post. For the copy function and the text
buffer, itself, ^M are just 2 simple characters (^ and M). There's no
interpreter (function) involved, that might interpret ^M as a control
character.
Post by bill
Post by VanguardLH
Of course, bill wanted "regards,\nbill" inserted into his message, but
auto-correct would add a string within the current line instead of
adding 2 lines. I take it \n (newline) cannot be included in the
auto-correct string.
I just set "aaa" to "Regards,\nbill" in the "a.dy" dictionary & saved it.
Now when I type aaa nothing happens
That's not because of the \n, but because some of your active dictionaries
accepts aaa as valid word. Only strings, that are not valid words in any
of your currently active dictionaries can be used as shortcuts for your
autocorrection lists. Best, first to try a string inside the Compose
editor window. If the string gets a red underlining (= spelling error or
unknown word), it is usable as autocorrection shortcut.

Back to "Regards,\nbill": Regular expressions aren't evaluated by the
copy function or inside the text buffer, either. (As VanguardLH already
suggested.) If you'd have used a working autocorrection shortcut, the
outcome would have been just: Regards,\nbill

As long as you have auto-wrapping of long lines turned on and leave the
"Wrap after XX characters" on a fixed value, you can trick autocorrect
into some virtual multi-line-support, though. Just type enough space
characters between "Regards," and "Bill" to trigger the wrapping. ;-)

This may get you unfriendly replies, though, if people start to notice,
that you bloat all your messages with lots of unnecessary space chars
just to save a couple of keystrokes. So, maybe, you apply this approach
only, when you find a longer first-line text than "Regards,"... ;-)

Bernd
bill
2021-04-23 00:04:27 UTC
Permalink
Post by Bernd Rose
^M are just 2 simple characters (^ and M).
There's no interpreter (function) involved
Thanks. That explains what I'm seeing.
I tried pasting a control M copied into vim but even that didn't work.
I will give up trying. ;-/
Post by Bernd Rose
That's not because of the \n, but because some of your active dictionaries
accepts aaa as valid word.
Oh. Makes sense. Thanks.
Post by Bernd Rose
Best, first to try a string inside the Compose editor window.
Makes sense. Good hint. Dialog is powerful and has tricks everywhere. ;-/
Post by Bernd Rose
Back to "Regards,\nbill": Regular expressions aren't evaluated by the
copy function or inside the text buffer, either.
OK. Makes sense. No interpreter. Thanks.
Post by Bernd Rose
As long as you have auto-wrapping of long lines turned on and leave the
"Wrap after XX characters" on a fixed value, you can trick autocorrect
into some virtual multi-line-support, though. Just type enough space
characters between "Regards," and "Bill" to trigger the wrapping. ;-)
Wow. Yet another trick. Makes sense though. Let's try it.
Oooooooooh! Worked PERFECTLY the very first time I tested it!

It doesn't jump to the next line so I have to type the triple-c at a
newline. And it seems to be case sensitive as CCC doesn't trigger it.

I tested triple-c as being defined as:
Regards,
bill

I gave it a long string of spaces and it worked fantastically.
First time. I must have guessed perfectly by accident at the number.

Now I have to go back and count the spaces as the autowrap is whatever the
default is set to. Using vim I converted spaces to x's to get this:

Regards,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxbill

Counting by hand that's 83 spaces plus the 8 characters in "Regards," for a
total of 91 characters which must be the line wrap point I guess.
Post by Bernd Rose
This may get you unfriendly replies, though, if people start to notice,
that you bloat all your messages with lots of unnecessary space chars
just to save a couple of keystrokes. So, maybe, you apply this approach
only, when you find a longer first-line text than "Regards,"... ;-)
Well, I'm testing it out now... (the triple-c has to be on its own line).

Regards,
bill
--
Why are pencils and communism so similar?
They both only work on paper!
Bernd Rose
2021-04-23 03:53:42 UTC
Permalink
On Fri, 23rd Apr 2021 02:04:27 +0200, bill wrote:

[Multi-line autocorrect with padding spaces]
Post by bill
I gave it a long string of spaces and it worked fantastically.
First time. I must have guessed perfectly by accident at the number.
Now I have to go back and count the spaces as the autowrap is whatever the
Regards,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxbill
Counting by hand that's 83 spaces plus the 8 characters in "Regards," for a
total of 91 characters which must be the line wrap point I guess.
Post by Bernd Rose
This may get you unfriendly replies, though, if people start to notice,
that you bloat all your messages with lots of unnecessary space chars
just to save a couple of keystrokes. So, maybe, you apply this approach
only, when you find a longer first-line text than "Regards,"... ;-)
Well, I'm testing it out now... (the triple-c has to be on its own line).
Regards,
bill
Two effects from one omission I remembered yesterday after shutting down
my PC: Auto-wrap in 40tude Dialog does not wrap into leading spaces. The
next non-whitespace character encountered after the wrapping margin will
be the first character on the next line. What's more: trailing spaces left
over from auto-wrap are automatically deleted by 40tude Dialog before
sending. (As you can see on your salutation above.) - So, there actually
is no need to prolong your "Regards," to minimize the number of trailing
spaces. ;-)

Bernd
bill
2021-04-23 14:57:51 UTC
Permalink
there actually is no need to prolong your "Regards,"
to minimize the number of trailing spaces. ;-)
Every post you tell me neat tricks that Dialog has that I didn't know!

Interestingly I WAS wondering what happened to the 83 blanks AFTER I sent
the message and looked to see how obnoxious it would be (as per your prior
warning).

And I WAS wondering how I could have guessed perfectly at the number of
spaces since I had expected to run a few trial and error tests before I got
the number of spaces down right.

It turns out both problems were already solved for me by Dialog!
-1- Dialog was smart in removing all the padding spaces before sending
-2- Therefore it doesn't matter how many (as long as it exceeds wrap count)

Another perfect solution! (I'm gonna type "CCC" (lowercase) now...)

Regards,
bill
--
When it comes to sharpening pencils...
There's never a dull moment.
Bernd Rose
2021-04-23 17:16:01 UTC
Permalink
Post by bill
It turns out both problems were already solved for me by Dialog!
-1- Dialog was smart in removing all the padding spaces before sending
-2- Therefore it doesn't matter how many (as long as it exceeds wrap count)
You can expand the usage case on this thought: You wrote, you need to go
to the start of a line to have the salutation expanding on separate lines.
That's not necessarily the case. You can also add a whole bunch of spaces
/prior/ "Regards,". If, afterwards, you type the autoreplace shortcut at
the end of a non-empty line, this will insert "Regards," at the start of
the /next/ line. If, OTOH, the autoreplace shortcut is inserted at the
beginning of a line, this will insert an additional empty line above the
line containing "Regards,".

You can't insert two line wraps in a row, though. It would be possible,
to separate two blocks of spaces (each longer than line wrap) with a
virtually invisible character using the Unicode charset. But that would
cause every single message you post to be encoded with UTF-7 or UTF-8.
(Which is really not advisable.) There are a few characters inside the
7-bit US-ASCII charset, that might seem acceptable at the beginning of
empty lines separating a greeting from the text body, though.
=> The characters +-=*.,~#% come in mind.
Post by bill
Another perfect solution! (I'm gonna type "CCC" (lowercase) now...)
I'm still wondering, why "rb" doesn't work for you. It seems like the
perfect fit and works without problems on my system with English and
German dictionaries enabled. Did you add "rb" to a custom dictionary
sometime in past?

Bernd
bill
2021-04-23 22:37:11 UTC
Permalink
Post by Bernd Rose
You can also add a whole bunch of spaces
/prior/ "Regards,". If, afterwards, you type the autoreplace shortcut at
the end of a non-empty line, this will insert "Regards," at the start of
the /next/ line.
That also worked (see salutation below done using that method!).
That's perfect!
Post by Bernd Rose
I'm still wondering, why "rb" doesn't work for you. It seems like the
perfect fit and works without problems on my system with English and
German dictionaries enabled. Did you add "rb" to a custom dictionary
sometime in past?
I checked and didn't see "rb " but it's ok that it didn't work.
Everything else I tried from you did work so that's great progress.

I'm going to type the salutation command at the end of this line.
Regards,
bill
--
Police are searching for a robber who's stealing blunt pencils.
Quite frankly, they cant see the point
Bernd Rose
2021-04-24 07:12:32 UTC
Permalink
Post by bill
Post by Bernd Rose
You can also add a whole bunch of spaces
/prior/ "Regards,". If, afterwards, you type the autoreplace shortcut at
the end of a non-empty line, this will insert "Regards," at the start of
the /next/ line.
That also worked (see salutation below done using that method!).
That's perfect!
[...]
Post by bill
I'm going to type the salutation command at the end of this line.
Regards,
bill...................................................................................................................................
I replaced spaces with dots for clarification: Seems my suggested method
has its limits when done multi-line. ;-)

The spaces will not be cited, though. (I manually needed to copy them back
into the message.) It's a question of weighting pros and cons, then.

Bernd
bill
2021-04-24 14:36:38 UTC
Permalink
Post by Bernd Rose
Post by Bernd Rose
Regards,
bill...................................................................................................................................
I replaced spaces with dots for clarification: Seems my suggested method
has its limits when done multi-line. ;-)
The spaces will not be cited, though. (I manually needed to copy them back
into the message.) It's a question of weighting pros and cons, then.
Well then...... Dialog isn't actually "perfect" (but only nearly so!). :-/

I love the flexibility of Dialog and the ability to do these nice things!

I now have what I needed which is an easy way to end the message nicely.
I'll type the CCC, lowercase, exactly after the bang (no spaces before).

THANK YOU!
Regards,
bill
--
Why can't pencils move?
Because they are stationery
bill
2021-04-21 21:51:49 UTC
Permalink
Post by VanguardLH
Who was it that mentioned %randomsig:<filepath>% in the starter post?
That 48% of your message was chaff unrelated to your inquiry?
That was me! ;-/
Sorry.

I loaded Dialog recently because Bernd had suggested it for Windows 10.
It's a very nice newsreader which I liked immediately.

I was impressed there are so many options which is why I was happy that I
got the random signature to work (on a list of pencil jokes I pulled off the
net as my first experiment).

But in reality I want a normal salutation sign off like we would put at the
end of a business letter. I saw Bernd's suggestion to make it a spelling
correction, which is a nice touch that I'll try out as Dialog can do a lot.
Post by VanguardLH
Seems Bernd's mention of the OnBeforeSend event to create a script to
process your message before sending it would work. Years ago there was
an archive of user-written scripts which could be used as-is or
modified; however, the domain it was at before is locked out, so it is
unusable. Often I could find a script there that I could tweak for
another use.
I am not a programmer so what I usually do is find a script that works and I
run it as my "hello world" to make sure I have all the infrastructure right.

Then I sloooooooooowly modify that script, almost character by character,
and I back up when it fails so that I know what I changed and try again (and
again, and again).

So I too can benefit from a directory of WORKING scripts for Dialog.

That's what I was doing with the umlaut script in fact before Bernd
convinced me I would ultimately fail.
(http://web.archive.org/web/20120127150224/http://dialog.datalist.org:80/scripts/ScriptreplaceUmlaut.html)

All I want it to do is convert the unicode smart quotes to unicode straight
quotes but I couldn't even get the umlaut part to work for me so I gave up.

But as you said these working scripts are falling off the Internet it seems
(http://dialog.datalist.org/scripts/script_library.html)
(http://kh-rademacher.de/4d)

And a lot is in German (which I have to translate with Google Translate).
(http://4d.vollmeier.at)

Some are in a mix of German and English though
(http://bertel.lundhansen.dk/?page=dialog/dialog)
(http://bertel.lundhansen.dk/?page=dialog/functionlist)

But even if I'm not a programmer I still like all the options Dialog has!
--
Did you know trees poop?
Well, where do you think #2 pencils come from?
Pancho Sanza
2021-04-25 23:10:29 UTC
Permalink
Post by bill
But how do you set a sig in Dialog that doesn't add the dash dash space?
I guess your question has been answered to your satisfaction (I tried
to follow the thread but got lost in Dialog specific technicalities),
but nevertheless I still feel the uncontrollable need to add my 2
cents. Which means I would do it by applying a simple keyboard macro.

Record these key-strokes: <CTRL>-F -> Fill in "-- " (to search for) ->
<Enter> -> <Del> <Del> (to remove the .sig delimiter and its line) ->
<Alt-C -> "S" (to send now) or "e" (to send later), and that's it,
basically.

In the Good Old Days I even used keyboard macros to move text from the
newsreader editor to a Real Editor for some Serious Editing and vice
versa, but nowadays I can't be bothered with tricks like these
anymore.

Btw, I used (and still use) a 21 year old tiny program called Keyboard
Express for recurring tasks like these.
--
Pancho
Bernd Rose
2021-04-26 04:15:26 UTC
Permalink
Post by Pancho Sanza
Post by bill
But how do you set a sig in Dialog that doesn't add the dash dash space?
I guess your question has been answered to your satisfaction (I tried
to follow the thread but got lost in Dialog specific technicalities),
but nevertheless I still feel the uncontrollable need to add my 2
cents. Which means I would do it by applying a simple keyboard macro.
Record these key-strokes: <CTRL>-F -> Fill in "-- " (to search for) ->
<Enter> -> <Del> <Del> (to remove the .sig delimiter and its line) ->
<Alt-C -> "S" (to send now) or "e" (to send later), and that's it,
basically.
40tude Dialog has no keyboard shortcut assigned to <Find...> inside the
Compose Editor window. First step for this approach would be, to assign
<Ctrl><F> (or whatever shortcut seems appropriate) to the find function.
Maybe, you did this in your 40tude Dialog instance a while ago?

Setting has to be done with Options -> Configure buttons/Shortcuts...
from the menu of a Compose Window, /not/ from main 40tude Dialog window.

Apart from this: 40tude Dialog Compose Editor <Find...> does not support
RegEx searches. -- Therefore, this macro may create undesirable results.
(Is herefore even a valid English word?) ;-)

Bernd

Loading...