Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > alt.comp.microsoft.windows > #3023 > unrolled thread

Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters

Started byMarian <marianjones@helpfulpeople.com>
First post2025-12-11 09:42 -0700
Last post2026-03-14 11:43 -0700
Articles 20 on this page of 66 — 9 participants

Back to article view | Back to alt.comp.microsoft.windows


Contents

  Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-11 09:42 -0700
    Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-11 09:56 -0700
      Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-11 10:46 -0700
      Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-11 19:46 +0100
        Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-11 19:38 -0700
          Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-11 20:23 -0700
          Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-12 09:36 +0100
            Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-12 10:09 -0700
              Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-13 07:33 +0100
                Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-14 16:57 -0700
                  Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-15 09:24 +0100
                    Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-15 04:34 -0700
                      Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-15 14:44 +0100
                        Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Chris <ithinkiam@gmail.com> - 2025-12-15 22:49 +0000
                          Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-16 08:29 +0100
                            Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-17 02:12 -0700
                              Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-17 13:10 +0100
                                Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-22 10:56 -0700
                                  Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-22 19:50 +0100
                                    Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-22 21:21 +0100
            Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Chris <ithinkiam@gmail.com> - 2025-12-12 19:55 +0000
              Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-12 19:44 -0700
                Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-13 08:47 +0100
                  Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-14 16:54 -0700
                    Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-15 09:14 +0100
                      Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-17 02:18 -0700
                        Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-17 14:40 +0100
                          Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-22 11:01 -0700
                            Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-22 20:25 +0100
              Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-14 20:37 +0100
                Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-14 16:53 -0700
                  Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Chris <ithinkiam@gmail.com> - 2025-12-15 07:46 +0000
                    Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-15 09:56 +0100
                      HTML arrogance (was: Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters) "J. P. Gilliver" <G6JPG@255soft.uk> - 2025-12-15 10:07 +0000
                        Re: HTML arrogance "R.Wieser" <address@is.invalid> - 2025-12-15 12:49 +0100
                        Re: HTML arrogance (was: Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters) Steve Hayes <hayesstw@telkomsa.net> - 2025-12-16 10:42 +0200
                          Re: HTML arrogance "J. P. Gilliver" <G6JPG@255soft.uk> - 2025-12-16 14:40 +0000
                      Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Frank Slootweg <this@ddress.is.invalid> - 2025-12-15 14:10 +0000
                        Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-15 17:24 +0100
                          Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-15 17:26 +0100
                            Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-17 02:25 -0700
                              Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-17 15:07 +0100
                                Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-22 21:09 -0700
                                  Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-23 07:47 +0100
                    Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-17 02:20 -0700
                  Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-15 06:56 +0100
            Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-12 19:33 -0700
              Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-13 08:14 +0100
                Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-14 16:52 -0700
                  Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-15 06:54 +0100
                    Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-17 02:26 -0700
                      Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-17 15:09 +0100
                        Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-22 21:10 -0700
                          Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters "R.Wieser" <address@is.invalid> - 2025-12-23 08:03 +0100
        Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-11 20:21 -0700
    Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-31 01:33 -0700
      Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Herbert Kleebauer <klee@unibwm.de> - 2025-12-31 13:21 +0100
        Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Marian <marianjones@helpfulpeople.com> - 2025-12-31 11:21 -0700
          Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Herbert Kleebauer <klee@unibwm.de> - 2025-12-31 20:47 +0100
            Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Chris <ithinkiam@gmail.com> - 2026-01-02 11:44 +0000
            Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Frank Slootweg <this@ddress.is.invalid> - 2026-01-03 13:07 +0000
            Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Maria Sophia <mariasophia@comprehension.com> - 2026-03-11 16:58 -0700
              Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Maria Sophia <mariasophia@comprehension.com> - 2026-03-11 17:19 -0700
                Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters ...w¡ñ§±¤ñ <winstonmvp@gmail.com> - 2026-03-11 23:42 -0700
                  Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters Maria Sophia <mariasophia@comprehension.com> - 2026-03-13 03:54 -0700
                    Re: Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters ...w¡ñ§±¤ñ <winstonmvp@gmail.com> - 2026-03-14 11:43 -0700

Page 1 of 4  [1] 2 3 4  Next page →


#3023 — Tutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters

FromMarian <marianjones@helpfulpeople.com>
Date2025-12-11 09:42 -0700
SubjectTutorial: Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters
Message-ID<10hesa9$2q1m$1@nnrp.usenet.blueworldhosting.com>
Tutorial:
Notepad++ shortcuts.xml macro converts unicode to the 95-keyboard ASCII characters

Below is a shortcuts.xml that builds a macro to convert any character that
is in a copy-and-pasted excerpt into one of the 95 QWERTY keyboard 7-bit 
ASCII characters.

The use model is simple:
 a. Edit or replace your current shortcuts.xml with this shortcuts.xml
 b. Paste the text to be converted into Notepad++ 
 c. Press Control+A Control+B to convert the Unicode to 7-bit ASCII

A typical sequence is:
 ctrl+x (copies text snippet from a news article containing Unicode)
 Win+R > n (starts notepad using the registry App Paths key)
 ctrl+v (pastes the text into Notepad++)
 ctrl+a (selects it all, if not already all selected)
 ctrl+b (runs the macro which converts unicode to ascii)
 ctrl+x (cuts it all out of the Notepadd++ session)
 ctrl+v (pastes it back into where you needed it in gVim)
 
Only the most common unicode characters are in this conversion xml such as
 Convert (') apostrophe instead of curly apostrophe (U+2018 U+2019)
 Convert ("  straight doublequote instead of curly doublequote (U+201C U+201D)
 Convert (-) hyphen-minus instead of en dash or em dash (U+2013 U+2014)
 Convert (...) three periods instead of  ellipsis character (U+2026)
 Convert (space) normal space instead of non-breaking space (U+00A0)
 Convert (*) asterisk or ( - ) hyphen instead of typographic bullet (U+2022)
 Convert text "degrees" instead of degree symbol (U+00B0)
 Convert (>) greater-than sign instead of [RIGHT ARROW U+2192]
 Convert (<) less-than sign instead of [LEFT ARROW U+2190]
 Convert text "(TM)" instead of trademark symbol (U+2122)
 Convert text "(R)" instead of registered mark symbol (U+00AE)
 Convert text "(C)" instead of copyright symbol (U+00A9)
 Convert CRLF (U+000D U+000A) Windows-style line endings instead of LF-only  
 Convert (U+000A) Unix-style line endings when preparing code/text for Windows gVim.

If any are missing that are common, please add the conversion code.
(This is my actual copy - as it has been edited umpteen times over time;
but I'll post a followup cleanup version which should be easier to parse.)

  <?xml version="1.0" encoding="UTF-8" ?>
  <!-- shortcuts.xml, version 1p0: ctrl+a ctrl+b, Macro > ASCII -->
  <NotepadPlus>
  <InternalCommands>
          <Shortcut id="43009" Ctrl="no" Alt="no" Shift="no" Key="0" />
      </InternalCommands>
      <Macros>
  <Macro name="ASCII" Ctrl="yes" Alt="no" Shift="no" Key="66">
      <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
      <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2010;" />
      <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
      <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
      <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
      <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
      <!-- === NEW: Handle SOH (ASCII 0x01) === -->
      <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
      <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0001;" />
      <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
      <!-- Replace SOH with nothing (strip it) -->
      <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
      <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
      <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
      <!-- === END SOH block === -->
  
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2012;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <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="&#x2013;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <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="&#x2014;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <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="&#x2212;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <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="&#x200C;" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  	    <Action type="3" message="1602" wParam="0" lParam="0" sParam="&#x2a;" />
              <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="..." />
              <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="&amp;#151;" />
              <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="&#x2014;" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
              <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="&#x2013;" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
              <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="&zwnj;" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
              <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="&#x2022;" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam="&#x002A;" />
              <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="&#x8722;" />
              <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="&#x11f;" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam="g" />
              <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="&#8201;" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam="x" />
              <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="&#xe1;" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam="a" />
              <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="&#x161;" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam="s" />
              <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="&#x11b;" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam="e" />
              <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="&#x2713;" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
              <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
              <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

              <!-- === START: Extra mappings === -->
              <!-- Apostrophe lookalikes -->
              <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2032;" />
              <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="&#x02BC;" />
              <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="" />
  
              <!-- Extra dash variants -->
              <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1601" wParam="0" lParam="0" sParam="-" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
              <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="-" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
              <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
              <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
              <!-- Backtick to ASCII single quote -->
              <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1601" wParam="0" lParam="0" sParam="`" />
              <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="" />
  
  	    <!-- Unicode Arrow (U+2192) to ASCII dash greaterthan --> 
              <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2192;" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam="->" />
              <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
              <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  	    <!-- degree symbol to the word deg --> 
              <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00B0;" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam="deg" />
              <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
              <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  	    <!-- copyright symbol to the letter (C) --> 
              <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00A9;" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam="(C)" />
              <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
              <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  	    <!-- Trademark (U+2122) to (TM) --> 
              <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2122;" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam="(TM)" />
              <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
              <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  
  	    <!-- Registered (U+00AE) to (R) -->  
              <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00AE;" />
              <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
              <Action type="3" message="1602" wParam="0" lParam="0" sParam="(R)" />
              <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
              <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  	    
              <!-- === END: Extra mappings === -->
          </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>
-- 

[toc] | [next] | [standalone]


#3024

FromMarian <marianjones@helpfulpeople.com>
Date2025-12-11 09:56 -0700
Message-ID<10het4r$1bkr$1@nnrp.usenet.blueworldhosting.com>
In reply to#3023
UPDATE:

Currently every shortcuts.xml mapping is written out as a 6-line block:
  1700 -> start search
  1601 -> set search string (funky character)
  1625 -> clear replace buffer
  1602 -> set replacement string (ASCII equivalent)
  1702 -> run replace all
  1701 -> end

That's why the file looks so long and repetitive.
This started as a convertion of just a couple of funky characters to ASCII.
Then it grew over time (years) one by one to include more characters.

We can't avoid the repetition entirely because Notepad++ macros don't
support loops or dictionaries. 

But we can simplify because for Notepad++ macros, we don't actually need
the reset/clear/end lines every time. 

The essential trio is:
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="BADCHAR" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="GOODCHAR" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
So each mapping shrinks from 6 lines > 3 lines.

However, if we're open to using a plugin (like PythonScript or LuaScript),
we can collapse the whole macro into a dictionary loop such as this:
 mapping = {
    "\u2010": "-",  # hyphen
    "\u2011": "-",  # non-breaking hyphen
    "\u2013": "-",  # en dash
    "\u2014": "-",  # em dash
    "\u2018": "'",  # left single quote
    "\u2019": "'",  # right single quote
    "\u201C": '"',  # left double quote
    "\u201D": '"',  # right double quote
    "\u2026": "...",# ellipsis
    "\u2022": "*",  # bullet
    "\u00A0": " ",  # non-breaking space
    "\uFEFF": "",   # BOM
    # �K add the rest
 }

 editor.beginUndoAction()
 for bad, good in mapping.items():
    editor.rereplace(bad, good)
 editor.endUndoAction()

I'll post the test version of the rewritten macro in the next update.
-- 
I go to trouble and time and effort to write my Usenet posts because I'm
kind hearted enough to care that everyone gets excellent researched data.

[toc] | [prev] | [next] | [standalone]


#3025

FromMarian <marianjones@helpfulpeople.com>
Date2025-12-11 10:46 -0700
Message-ID<10hf015$2alp$1@nnrp.usenet.blueworldhosting.com>
In reply to#3024
Marian wrote:
> Currently every shortcuts.xml mapping is written out as a 6-line block:
>   1700 -> start search
>   1601 -> set search string (funky character)
>   1625 -> clear replace buffer
>   1602 -> set replacement string (ASCII equivalent)
>   1702 -> run replace all
>   1701 -> end

UPDATE:

Drat. The original depended on 1700/1625/1701 around each replace.
So I removed the redundancy. When I tested it, only some characters worked.

But for characters like degree, copyright, trademark, registered, etc., Notepad++ apparently must have the reset (1700), clear (1625) and end (1701) lines around the replace (1702) because otherwise, AFAICT, the Find/Replace engine apparently doesn't execute. 

So we're stuck with the redundancy for Notepad++ to replace each character.
 Hyphens: - - - - - -
 Quotes: ' ' " " 'backtick'
 Ellipsis: ...
 Bullets: *
 Zero-widtha: ''' (these may look invisible)
 Spaces:      
 Symbols: 90deg (C) (TM) (R)
 Arrowa: ->
 Literals: - &amp;#151;
 Diacritics: g s e a
 SOH: [U+0001 here]
 etc.


Here is the latest working version which I tested against the above characters.

 <?xml version="1.0" encoding="UTF-8" ?>
 <!-- Notepad++ shortcuts.xml version 1p1 20251211 -->
 <!-- Use model: ctrl+A (select all), ctrl=B (convert) -->
 <!--  -->
 <!-- 1700 start search -->
 <!-- 1601 set search string (funky character) -->
 <!-- 1625 clear replace buffer -->
 <!-- 1602 set replacement string (ASCII equivalent) -->
 <!-- 1702 run replace all -->
 <!-- 1701 end -->
 <!--  -->
 
 <NotepadPlus>
   <InternalCommands>
     <Shortcut id="43009" Ctrl="no" Alt="no" Shift="no" Key="0" />
   </InternalCommands>
 
   <Macros>
     <Macro name="ASCII" Ctrl="yes" Alt="no" Shift="no" Key="66">
 
       <!-- U+2010 HYPHEN ? "-" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2010;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+2011 NON-BREAKING HYPHEN ? "-" -->
       <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="-" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+2012 FIGURE DASH ? "-" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2012;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+2013 EN DASH ? "-" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2013;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+2014 EM DASH ? "-" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2014;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+2212 MINUS SIGN ? "-" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2212;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+2018 LEFT SINGLE QUOTE ? "'" -->
       <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="" />
 
       <!-- U+2019 RIGHT SINGLE QUOTE ? "'" -->
       <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="" />
 
       <!-- U+201C LEFT DOUBLE QUOTE ? "\"" -->
       <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="" />
 
       <!-- U+201D RIGHT DOUBLE QUOTE ? "\"" -->
       <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="" />
 
       <!-- U+2026 HORIZONTAL ELLIPSIS ? "..." -->
       <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="..." />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+2022 BULLET ? "*" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2022;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="*" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+200B ZERO WIDTH SPACE ? "" -->
       <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="" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+200C ZERO WIDTH NON-JOINER ? "'" -->
       <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="" />
 
       <!-- U+200D ZERO WIDTH JOINER ? "'" -->
       <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="" />
 
       <!-- U+2060 WORD JOINER ? "'" -->
       <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="" />
 
       <!-- U+FEFF BOM ? "" -->
       <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="" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+00A0 NO-BREAK SPACE ? " " -->
       <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=" " />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+2007 FIGURE SPACE ? " " -->
       <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=" " />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+202F NARROW NO-BREAK SPACE ? " " -->
       <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=" " />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+00B0 DEGREE SIGN ? "deg" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00B0;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="deg" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+00A9 COPYRIGHT SIGN ? "(C)" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00A9;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="(C)" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+2122 TRADE MARK SIGN ? "(TM)" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2122;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="(TM)" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+00AE REGISTERED SIGN ? "(R)" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00AE;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="(R)" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+2192 RIGHT ARROW ? "->" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2192;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="->" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- BACKTICK ? "'" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="`" />
       <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="" />
 
       <!-- Literal &zwnj; ? "-" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&zwnj;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- Literal &amp;#151; ? "&" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&amp;#151;" />
       <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="" />
 
       <!-- U+011F LATIN SMALL LETTER G WITH BREVE ? "g" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x011F;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="g" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+0161 LATIN SMALL LETTER S WITH CARON ? "s" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0161;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="s" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+011B LATIN SMALL LETTER E WITH CARON ? "e" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x011B;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="e" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+00E1 LATIN SMALL LETTER A WITH ACUTE ? "a" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00E1;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="a" />
       <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
       <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
       <!-- U+0001 SOH ? "" -->
       <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0001;" />
       <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
       <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
       <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>
 
 
-- 
I invest energy in composing Usenet posts because I care greatly about people
getting full & complete information so we move our tribal knowledge forward.

[toc] | [prev] | [next] | [standalone]


#3026

From"R.Wieser" <address@is.invalid>
Date2025-12-11 19:46 +0100
Message-ID<10hf3k9$2dqfg$1@dont-email.me>
In reply to#3024
Arlen,

> Currently every shortcuts.xml mapping is written out as a 6-line block:
>  1700 -> start search
Initialize.search engine

>  1601 -> set search string (funky character)
>  1625 -> clear replace buffer
search type. lParam=0 -> standard

>  1602 -> set replacement string (ASCII equivalent)
>  1702 -> run replace all
how to search. lParam=768 -> Search forward, wrap-around

>  1701 -> end
Execute the search. lParam=1609 -> Replace all

> The essential trio is:
> <Action type="3" message="1601" wParam="0" lParam="0" sParam="BADCHAR" />
> <Action type="3" message="1602" wParam="0" lParam="0" sParam="GOODCHAR" />
> <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
> So each mapping shrinks from 6 lines > 3 lines.

In the light of the above, not quite.  Maybe the the below ?

-- Initialize
1700
1625
1702
-- Repeated block
1601
1602
1701

Odd though : you have posted the standard macros, as if you have not tested 
your "the essential trio" conclusion yourself ...

And a remark : When you replace something with something else, and than 
later replace that something else by something-yet-else you won't like the 
result (no occurence of "something else" will remain).   You need the second 
replace come before the first one.

Also, replacing something with itself doesn't really do much. :-)

And a hint : make sure that all indentation is correct before hitting the 
"send" button.  Seeing the "action" lines having four different indentations 
looks ugly.  Same for wrapping replace-blocks (those 6 lines you spoke of) 
with empty lines.  Either do it everywhere, or do it nowhere.

And I almost forgot : You need to be carefull when replacing special chars 
with phrases.  You might have better results when wrapping the phrases with 
spaces ( see "->" and "deg")

And noticed while walking thru that list :
"&#8201;" is a thin space, not an "x".
"&amp;#151;" to "&amp;" ?  Not a dash ?
'&quot;'  with single-quotes around it instead of double ones ?   Any reason 
for that ?
"apos;" ?  Why not just a single quote thats available on you keyboard ?
"&#x00A0;" is a hard space, not a quote.
"&#x2018;" and "&#x2019;" are twice in there.
"&#x2a;" is a standard ASCII char ("*").  Why not use it instead ?

Regards,
Rudy Wieser

[toc] | [prev] | [next] | [standalone]


#3027

FromMarian <marianjones@helpfulpeople.com>
Date2025-12-11 19:38 -0700
Message-ID<10hfv7t$1jqe$1@nnrp.usenet.blueworldhosting.com>
In reply to#3026
R.Wieser wrote:
> Odd though : you have posted the standard macros, as if you have not tested 
> your "the essential trio" conclusion yourself ...

Thanks for looking at the code, which was designed to convert the most
common "funky" characters found in web site copy pasted text to only the 95
or so characters found on a typical US QWERTY keyboard.

When I tested the "essential trio", I didn't realize it missed some (like
copyright, trademark, degrees, etc.), so I posted an update replacing the
trio with the half dozen. 

So I agree with you that the essential trio was posted before I was
positive it worked in all cases - which it didn't - so I replaced it.

> Also, replacing something with itself doesn't really do much. :-)

I'm not sure what you mean by that since the replacement is to change
Unicode characters (for the most part) into 7-bit ASCII characters.

So, in the sense that a curly quote is changed to a regular quote, you
could argue it's replacing itself, but in reality it's a different
character.

If you're on the Android newsgroup, you'll see more clearly why it matters.
We've had a discussion about charset Usenet headers in recent days.

> 
> And a hint : make sure that all indentation is correct before hitting the 
> "send" button.  Seeing the "action" lines having four different indentations 
> looks ugly.  Same for wrapping replace-blocks (those 6 lines you spoke of) 
> with empty lines.  Either do it everywhere, or do it nowhere.

Good point. That's my actual code so I didn't clean it up for presentation.

> And I almost forgot : You need to be carefull when replacing special chars 
> with phrases.  You might have better results when wrapping the phrases with 
> spaces ( see "->" and "deg")

Yeah. Thanks. The degree I struggled with bothering with since gVIM can
handle the degree but I wanted to be consistent in removing all the common
characters which are found in copy-pasted web sites that's not on the
keyboard.

There's no "arrow" or "degree" symbol on the keyboard.

> And I noticed while walking thru that list :
> "&#8201;" is a thin space, not an "x".
> "&amp;#151;" to "&amp;" ?  Not a dash ?
> '&quot;'  with single-quotes around it instead of double ones ?   Any reason 
> for that ?
> "apos;" ?  Why not just a single quote thats available on you keyboard ?
> "&#x00A0;" is a hard space, not a quote.
> "&#x2018;" and "&#x2019;" are twice in there.
> "&#x2a;" is a standard ASCII char ("*").  Why not use it instead ?

Thank you for making those wonderful suggestions. 
I'll take them each on their own merits in a moment, as I appreciate the
help, not only for me, but for everyone as we all can use this sanitizer.

[toc] | [prev] | [next] | [standalone]


#3029

FromMarian <marianjones@helpfulpeople.com>
Date2025-12-11 20:23 -0700
Message-ID<10hg1r8$17da$1@nnrp.usenet.blueworldhosting.com>
In reply to#3027
>> And I noticed while walking thru that list :
>> "&#8201;" is a thin space, not an "x".
>> "&amp;#151;" to "&amp;" ?  Not a dash ?
>> '&quot;'  with single-quotes around it instead of double ones ?   Any reason 
>> for that ?
>> "apos;" ?  Why not just a single quote thats available on you keyboard ?
>> "&#x00A0;" is a hard space, not a quote.
>> "&#x2018;" and "&#x2019;" are twice in there.
>> "&#x2a;" is a standard ASCII char ("*").  Why not use it instead ?


Thank you for all those suggestions, where, as always, I easily agree 
with anyone who makes a logically sensible argument, no matter what.

1. Regarding "&#8201;" is a thin space, not an "x".
   I don't see &#8201; (thin space) explicitly listed in the macro.
    &#x00A0; (NO-BREAK SPACE was replaced with " ")
    &#x2007; (FIGURE SPACE was replaced with " ")
    &#x202F; (NARROW NO-BREAK SPACE was replaced with " ")

I haven't tested it thoroughly but this is what I'll test:
 <!-- U+2009 THIN SPACE ? " " -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2009;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

2. Regarding "&amp;#151;" to "&amp;" ?  Not a dash ?
   &#151; is a legacy Windows-1252 code for an em dash.
   In proper Unicode, the em dash is &#x2014;
   Since &#151; represents a dash, the replacement should logically be a dash (-).
   Good catch. Here's the fixed block.

 <!-- Literal &amp;#151; ? "-" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&amp;#151;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

3. &quot; is the XML entity for a double quote (").
   In XML, both single ' and double " quotes are valid for wrapping attribute values.
   Functionally, it works fine in that Notepad++ will interpret it correctly.
   Using single quotes around &quot; is just a stylistic choice.
   sParam="&quot;" will also work.

   For easier reading, I'll change it to these.
 <!-- U+201C LEFT DOUBLE QUOTE ? "\"" -->
 <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="" />

 <!-- U+201D RIGHT DOUBLE QUOTE ? "\"" -->
 <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="" />

 The change is:
  Before: sParam='&quot;' (single quotes around the entity).
  Now: sParam="&quot;" (double quotes around the entity).

4. "apos;" ? Why not just a single quote that's available on your keyboard?
   The reason is that I was in syntax hell when I first tried it.
   So instead of a single quote, I used the XML entity for it.
   But you are correct that, in XML, you can safely put a literal ' inside 
   an attribute value if the attribute itself is wrapped in double quotes.
    So sParam="'" is simpler and clearer than is sParam="&apos;"

   This is a rewritten block that takes advantage of that syntax:
 <!-- U+2018 LEFT SINGLE QUOTE ? "'" -->
 <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="'" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

 Thanks for the advice, which I had taken the easy way out (syntactically)
 in the past, but your suggestion is much easier for others to read.

 I changed these six blocks (U+2018, U+2019, U+200C, U+200D, U+2060, 
 and BACKTICK) to use a plain ' instead of &apos;.

5. "&#x00A0;" is a hard space, not a quote.
   This hard space (aka a non-breaking space) is correct but I can see how
   it might have been mixed in with the quotes.

6. "&#x2018;" and "&#x2019;" are twice in there.
   Later in the file, I also had zero-width joiner/non-joiner and 
   word joiner sections where the replacement was also '.
   That makes it look like the single quote replacement appears multiple times.
   The Unicode single quotes (U+2018 and U+2019) were not repeated, AFAICT.
   Yes there are several other blocks where the replacement was also ' 
  (for zero-width joiner, non-joiner, word joiner, backtick) but those aren't 
  duplicates of U+2018 or U+2019, but they look similar since the replacement 
  is the same character.

7. "&#x2a;" is a standard ASCII char ("*"). Why not use it instead?
   I'm replacing the Unicode bullet with an asterisk (*).
   But you're saying, I think, that * is already a plain ASCII character
   so we don't need to encode it.
   In the macro, I have it set as sParam="*", which will use the asterisk.
   I agree with you that encoding ASCII characters as entities is unnecessary

Here is the new shortcuts.xml, version 1p2, with those specific fixes.

 <?xml version="1.0" encoding="UTF-8" ?>
  <!-- Notepad++ shortcuts.xml version 1p2 20251211 -->
  <!-- Use model: ctrl+A (select all), ctrl=B (convert) -->
  <!-- 1700 start search -->
  <!-- 1601 set search string (funky character) -->
  <!-- 1625 clear replace buffer -->
  <!-- 1602 set replacement string (ASCII equivalent) -->
  <!-- 1702 run replace all -->
  <!-- 1701 end -->

 <NotepadPlus>
  <InternalCommands>
    <Shortcut id="43009" Ctrl="no" Alt="no" Shift="no" Key="0" />
  </InternalCommands>

  <Macros>
    <Macro name="ASCII" Ctrl="yes" Alt="no" Shift="no" Key="66">

  <!-- U+2010 HYPHEN ? "-" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2010;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+2011 NON-BREAKING HYPHEN ? "-" -->
  <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="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+2012 FIGURE DASH ? "-" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2012;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+2013 EN DASH ? "-" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2013;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+2014 EM DASH ? "-" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2014;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+2212 MINUS SIGN ? "-" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2212;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+2018 LEFT SINGLE QUOTE ? "'" -->
  <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="'" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+2019 RIGHT SINGLE QUOTE ? "'" -->
  <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="'" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+201C LEFT DOUBLE QUOTE ? "\"" -->
  <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="" />

  <!-- U+201D RIGHT DOUBLE QUOTE ? "\"" -->
  <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="" />

  <!-- U+2026 HORIZONTAL ELLIPSIS ? "..." -->
  <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="..." />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+2022 BULLET ? "*" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2022;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="*" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+200B ZERO WIDTH SPACE ? "" -->
  <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="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+200C ZERO WIDTH NON-JOINER ? "'" -->
  <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="'" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+200D ZERO WIDTH JOINER ? "'" -->
  <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="" />

  <!-- U+2060 WORD JOINER ? "'" -->
  <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="'" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+FEFF BOM ? "" -->
  <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="" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+00A0 NO-BREAK SPACE (aka a hard space) ? " " -->
  <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=" " />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+2007 FIGURE SPACE ? " " -->
  <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=" " />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+202F NARROW NO-BREAK SPACE ? " " -->
  <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=" " />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+2009 THIN SPACE ? " " -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2009;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+00B0 DEGREE SIGN ? "deg" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00B0;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="deg" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+00A9 COPYRIGHT SIGN ? "(C)" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00A9;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="(C)" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+2122 TRADE MARK SIGN ? "(TM)" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2122;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="(TM)" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+00AE REGISTERED SIGN ? "(R)" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00AE;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="(R)" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+2192 RIGHT ARROW ? "->" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2192;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="->" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- BACKTICK ? "'" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="`" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="'" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- Literal &zwnj; ? "-" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&zwnj;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- Literal &amp;#151; ? "-" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&amp;#151;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  

  <!-- U+011F LATIN SMALL LETTER G WITH BREVE ? "g" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x011F;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="g" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+0161 LATIN SMALL LETTER S WITH CARON ? "s" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0161;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="s" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+011B LATIN SMALL LETTER E WITH CARON ? "e" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x011B;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="e" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+00E1 LATIN SMALL LETTER A WITH ACUTE ? "a" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00E1;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="a" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />

  <!-- U+0001 SOH ? "" -->
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0001;" />
  <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
  <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>
-- 
I invest energy in responding to Usenet posts because I care about people
getting full & complete information so we move tribal knowledge forward.

[toc] | [prev] | [next] | [standalone]


#3030

From"R.Wieser" <address@is.invalid>
Date2025-12-12 09:36 +0100
Message-ID<10hgk7e$2phjo$1@dont-email.me>
In reply to#3027
Arlen,

> So I agree with you that the essential trio was posted before I
> was positive it worked in all cases - which it didn't - so I replaced
> it.

Next time its a good idea to either leave such an "the essential trio"
conclusion out until you make sure, or include an "has yet to be tested"
remark.   Now you have presented it as an "this is how it works" thing,
which will only confuse the people who try to use it. :-|

>> Also, replacing something with itself doesn't really do much. :-)
>
> I'm not sure what you mean by that since the replacement is to change
> Unicode characters (for the most part) into 7-bit ASCII characters.
>
> So, in the sense that a curly quote is changed to a regular quote, you
> could argue it's replacing itself, but in reality it's a different
> character.

Nope, that isn't what I'm talking about : I see at least one replacement
where the 1602 is the same as the 1601.  Not really usefull.

> If you're on the Android newsgroup, you'll see more clearly why it
> matters.
> We've had a discussion about charset Usenet headers in recent days.

I see that you are replacing slim double-quotes with single-quotes, but
thats a matter of taste.  No matter what you do, that choice can work for
you as easily as against you (ask yourself how I know.. :-) ).

>> Seeing the "action" lines having four different indentations looks ugly.
>> Same for wrapping replace-blocks (those 6 lines you spoke of) with empty
>> lines.  Either do it everywhere, or do it nowhere.
>
> Good point. That's my actual code so I didn't clean it up for
> presentation.

Yeah, I noticed.   Next time do (clean up) though.   You're posting a
*tutorial*, which should be easy to read, and not include visual hurdles
like that.

> There's no "arrow" or "degree" symbol on the keyboard.

Feel free to quote where I said so or even just suggested as such.

Besides that, for the degree symbol open notepad, press-and-hold the ALT
key, type 0176 on the numeric keypad and than release the ALT key (°).   For
the arrow you might try 175 (no leading zero)  (ť).

Warning : What the displayed char actually looks like depends on the active
code-page.

> I'll take them each on their own merits in a moment, as I appreciate the
> help,

Good.  Everything that makes a tutorial concise and therefore easier to read
(no "why is it different here?" distractions) is a win for the ones your aim
it at - and by association yourself.

> not only for me, but for everyone as we all can use this sanitizer.

:-)  Most people do not use npp (me among them), so its of zero use to them.
Other people will have zero need to flatten UTF-8 (html ?) documents into
ASCII, so its of zero use to them either.  Others will have theit own
programs/scripts to do such flattening (me among them), so its of zero use
to them either.  That leaves a rather small audience, not much of an "all"
at all, but more like a niche ...

Regards,
Rudy Wieser



[toc] | [prev] | [next] | [standalone]


#3031

FromMarian <marianjones@helpfulpeople.com>
Date2025-12-12 10:09 -0700
Message-ID<10hhi95$1atr$1@nnrp.usenet.blueworldhosting.com>
In reply to#3030
R.Wieser wrote:
>> So I agree with you that the essential trio was posted before I
>> was positive it worked in all cases - which it didn't - so I replaced
>> it.
> 
> Next time its a good idea to either leave such an "the essential trio"
> conclusion out until you make sure, or include an "has yet to be tested"
> remark.   Now you have presented it as an "this is how it works" thing,
> which will only confuse the people who try to use it. :-|

Rudolph,

I agree with anyone who states a logically sensible view, where I agree
fully with you that I goofed by stating the trio would work for all cases.

I normally don't explain things like I'm going to, but I was getting ready
to go to the doctor's office for my sudden hearing loss and I was hurrying
to post the results of the tests which I had to back down from since I
published them too soon (as I found out in my own testing the trio
problem).

While we "can" eliminate the repetition of the six steps, for simplicity, I
fell back to the six-step method for each character to be translated to
ascii. 

I'm sure if we looked at the problem we could do a dictionary lookup, but
the system is already working (and has worked for years) so there's no
reason to do so.

There's even likely a Windows program I can pipe my posts thru to do the
conversion, I'll wager, but I don't know of that program (so I wrote it).

In summary, thanks for catching that I was premature on the trio.
I've removed it in favor of the half dozen.

> 
>>> Also, replacing something with itself doesn't really do much. :-)
>>
>> I'm not sure what you mean by that since the replacement is to change
>> Unicode characters (for the most part) into 7-bit ASCII characters.
>>
>> So, in the sense that a curly quote is changed to a regular quote, you
>> could argue it's replacing itself, but in reality it's a different
>> character.
> 
> Nope, that isn't what I'm talking about : I see at least one replacement
> where the 1602 is the same as the 1601.  Not really usefull.

I thank you for all your suggestions, where I "think" I've implemented all
of them. Can you take a look at the file I posted yesterday with updates?

> 
>> If you're on the Android newsgroup, you'll see more clearly why it
>> matters.
>> We've had a discussion about charset Usenet headers in recent days.
> 
> I see that you are replacing slim double-quotes with single-quotes, but
> thats a matter of taste.  No matter what you do, that choice can work for
> you as easily as against you (ask yourself how I know.. :-) ).

What I'm replacing isn't for looks. It's for charset compatibility.
I don't care what a quote looks like, as long as it's a keyboard character.

> 
>>> Seeing the "action" lines having four different indentations looks ugly.
>>> Same for wrapping replace-blocks (those 6 lines you spoke of) with empty
>>> lines.  Either do it everywhere, or do it nowhere.
>>
>> Good point. That's my actual code so I didn't clean it up for
>> presentation.
> 
> Yeah, I noticed.   Next time do (clean up) though.   You're posting a
> *tutorial*, which should be easy to read, and not include visual hurdles
> like that.

I was in a rush, and it's working code (see the latest post where I cleaned
it up). As always, I agree with anyone who makes valid sensible statements.

Remember though, I don't get paid for this. I volunteer my time for you. :)
If someone paid me for a tutorial, it would look beautiful! :)

> 
>> There's no "arrow" or "degree" symbol on the keyboard.
> 
> Feel free to quote where I said so or even just suggested as such.

I didn't say you said that. I'm just pointing out the goal is to convert
any text to text that is found on a keyboard. In the case of a degree
symbol or an arrow bullet, we have to decide how to represent it.

> 
> Besides that, for the degree symbol open notepad, press-and-hold the ALT
> key, type 0176 on the numeric keypad and than release the ALT key (�).   For
> the arrow you might try 175 (no leading zero)  (�).
> Warning : What the displayed char actually looks like depends on the active
> code-page.

Again, the goal is to convert any text to that which is on a keyboard.
>> I'll take them each on their own merits in a moment, as I appreciate the
>> help,
> 
> Good.  Everything that makes a tutorial concise and therefore easier to read
> (no "why is it different here?" distractions) is a win for the ones your aim
> it at - and by association yourself.

I very much appreciate the work you did to COMPREHEND the work that I had
done. I was actually very HAPPY you criticized the work I had done.

Notice that I spent a LOT Of effort (hours) cleaning it up.
As you had suggested.

We all need to keep in mind I'm not paid, and neither are you.
We're working to improve tribal knowledge together.

Now people can convert copy and pasted text to keyboard characters.
> 
>> not only for me, but for everyone as we all can use this sanitizer.
> 
> :-)  Most people do not use npp (me among them), so its of zero use to them.
> Other people will have zero need to flatten UTF-8 (html ?) documents into
> ASCII, so its of zero use to them either.  Others will have theit own
> programs/scripts to do such flattening (me among them), so its of zero use
> to them either.  That leaves a rather small audience, not much of an "all"
> at all, but more like a niche ...

But for those who have a need to convert arbitrary text to keyboard text, 
it's useful (if they're on Windows). 

Thanks for spending the effort to UNDERSTAND the code. I appreciate any
help anyone gives because I'm a team player. That's what I love about
Usenet. We're all improving the tribal knowledge together.

Now anyone, who wants to, can instantly convert arbitrary text to keyboard
text (assuming the character set we've defined is good enough of course).

[toc] | [prev] | [next] | [standalone]


#3035

From"R.Wieser" <address@is.invalid>
Date2025-12-13 07:33 +0100
Message-ID<10hj1ce$3o7fb$1@dont-email.me>
In reply to#3031
Arlen,

>>> So I agree with you that the essential trio was posted before I
>>> was positive it worked in all cases - which it didn't - so I replaced 
>>> it.

You don't get it, do you ?

What you have posted is *not* a tutorial, and you not doing yourself, and 
/definitily not/ the people you claim you are writing tutorials for, any 
favour.

All you did was, rather literally, dump some raw material and some 
unverified assumptions into a post.  Assumptions which I could correct you 
on with just a few minutes of googeling by the way.

Than you build another unverified assumption ("the essential trio is") ontop 
if it and put it into an update of the tutorial.

Yes, it *could* become worth-while information for some people, but as its 
now its worthless to the people you claim you are posting it for (the 
novices).    Verify/test *before* posting, /especially/ when you want to 
claim its a tutorial.

As for your "I was hurrying to post" ?  Thats something you've done to 
yourself.  Nobody was waiting for it, and would be none-the-wiser if you 
would have worked on it a bit more and posted it tomorrow, next week or even 
later.

Good work takes time.  Give it that.  Would you go to a restaurant and 
accept that you get a half-raw meal, or would you expect them to take their 
time and present you with something you would enjoy eating ?

Regards,
Rudy Wieser

[toc] | [prev] | [next] | [standalone]


#3048

FromMarian <marianjones@helpfulpeople.com>
Date2025-12-14 16:57 -0700
Message-ID<10hniu9$13ma$1@nnrp.usenet.blueworldhosting.com>
In reply to#3035
R.Wieser wrote:
> Good work takes time.  Give it that.

Rudolph,

Clearly I've invested in explaining to others how the substitution works.
I've likewise invested the energy into providing a working conversion file.

If you think the work is shoddy, point to any one of your thousands of
helpful tutorials on the net and I'll take a look at them for you.

What would be particularly useful to the newsgroup as a whole would be your
method of converting any characters to keyboard characters on Windows.

[toc] | [prev] | [next] | [standalone]


#3055

From"R.Wieser" <address@is.invalid>
Date2025-12-15 09:24 +0100
Message-ID<10hogk4$1ojei$4@dont-email.me>
In reply to#3048
Arlen,

> Clearly I've invested in explaining to others how the substitution works.

You did.  To bad that your explanation started on a quicksand of
assumptions, making it rather worthless.

My mentioning of what those macro line actually do ?  That was my attempt to
softly nudge you to veryfy what you guessed/assumed.    The rest was
provided for the same reason.

Writing words down isn't that hard.  Making sure that what you write is
correct and makes sense to your audience is whats time-consuming.

> I've likewise invested the energy into providing a working conversion
> file.

To me it looks as if you just copy-and-pasted npp's macro file into your
post.  Not something that I would regard as "invested the energy".

> If you think the work is shoddy,

I do.  Very much so.   And I have been saying the same for years.

> point to any one of your thousands of helpful tutorials on the net and
> I'll take a look at them for you.

And when I show you my work and you - undoubtebly, as thats obviously your
target - find something that you can claim, true or not, is shoddy than
suddenly your own work becomes less so ?

I'm sorry kid, but that is not how it works.  :-)

Besides that, I don't need to be a mechanic to be able to notice and tell an 
actual mechanic that a car is missing wheel bolts.  If that mechanic than 
tries to tell me that I'm not able to tell him that because I'm not a 
mechanic I will not ever think of letting him touch my car, and will warn my 
family and friends to do the same.

> What would be particularly useful to the newsgroup as a whole would be
> your method of converting any characters to keyboard characters on
> Windows.

No, it wouldn't.

As already explained - but as so often ignored by you - your target audience
is at best a (very) small subset of this newsgroup.

As for me providing you with methods than your npp macro one ?  Why should I
provide you with something you can *easily* find out yourself with a bit of
googeling ?

Why is it always /us/ who have to provide you with the information /you/
want/need - nonwithstanding how easily its to google ?

Regards,
Rudy Wieser


[toc] | [prev] | [next] | [standalone]


#3059

FromMarian <marianjones@helpfulpeople.com>
Date2025-12-15 04:34 -0700
Message-ID<10horp2$2cf5$1@nnrp.usenet.blueworldhosting.com>
In reply to#3055
R.Wieser wrote:
> Why is it always /us/ who have to provide you with the information /you/
> want/need - nonwithstanding how easily its to google ?

The whole point of providing open source code is so everyone improves it.

To that end, here is the latest version of the shortcuts.xml file.
Note that the intent is to convert (not to edit) characters.

Typically a conversion is needed to ASCII when "funky text" is copied
from a variety of prettified web sources, and you want it consistent.

The only consistent mechanism that EVERYONE can agree on is keyboard
ascii (aka the 95 characters found on the typical desktop keyboard).

Note that I could put into this shortcuts.xml a conversion of all possible
"funky text" but then it would become enormous - so this is common stuff.

It's stuff I've run into over the years. 
Below, for your edification, is my latest shortcuts.xml file.

The use model is simple:
 1. Bring up Notepad++ (e.g., "Win+R > n" if you use "App Paths" keys)
 2. Ctrl+v paste the funky text & Ctrl+a (to select all)
 3. Ctrl+b (to convert all the pasted text to keyboard ASCII)

It's fast. Effective. Simple. 
If anyone has a *better* solution, please let all of us know what that is.

Otherwise, this is the best (so far) that I can offer the team to use.

 <?xml version="1.0" encoding="UTF-8" ?>
 <!-- C:\app\editor\txt\Notepad++\shortcuts.xml -->
 <!-- Notepad++ shortcuts.xml version 1p3 20251214 -->
 <!-- Use model: ctrl+a (select all), ctrl+b (convert selected set) -->
 <!-- Macro engine command meanings:
      1700 = begin a new search/replace operation
      1601 = set the search string (the Unicode character to find)
      1625 = clear the replacement buffer
      1602 = set the replacement string (ASCII equivalent)
      1702 = execute �Replace All�
      1701 = end this search/replace block
 -->
 
 <NotepadPlus>
 <InternalCommands>
         <Shortcut id="43009" Ctrl="no" Alt="no" Shift="no" Key="0" />
     </InternalCommands>
     <Macros>
 <Macro name="ASCII" Ctrl="yes" Alt="no" Shift="no" Key="66">
 
 <!--  Replace U+2010 (HYPHEN) with ASCII "-"  -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2010;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+0001 (SOH control character) with nothing -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0001;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!--  Replace U+2012 (FIGURE DASH) with ASCII "-"  -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2012;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!--  Replace U+2212 (MINUS SIGN) with ASCII "-"  -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2212;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+200C (ZERO WIDTH NON-JOINER) with "" (nothing) -->
 <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="" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!--  Replace U+200B (ZERO WIDTH SPACE) with ASCII apostrophe "'"  -->
 <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="" />
 
 <!--  Replace U+200D (ZERO WIDTH JOINER) with ASCII apostrophe "'"  -->
 <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="" />
 
 <!--  Replace U+2060 (WORD JOINER) with ASCII apostrophe "'"  -->
 <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="" />
 
 <!--  Replace U+FEFF (BOM) with ASCII apostrophe "'" (strips BOM)  -->
 <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="" />
 
 <!--  Replace U+00A0 (NO-BREAK SPACE) with ASCII apostrophe "'" -->
 <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="" />
 
 <!--  Replace U+2007 (FIGURE SPACE) with ASCII apostrophe "'" -->
 <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="" />
 
 <!--  Replace U+202F (NARROW NO-BREAK SPACE) with ASCII apostrophe "'"
-->
 <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="" />
 
 <!--  Replace U+2011 (NON-BREAKING HYPHEN) with ASCII apostrophe "'"  -->
 <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="" />
 
 <!--  Replace U+0F0C (TIBETAN MARK DELIMITER) with ASCII apostrophe "'"
-->
 <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="" />
 
 <!--  Replace U+2018 (LEFT SINGLE QUOTE) with ASCII apostrophe "'"  -->
 <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="" />
 
 <!-- Replace U+2019 (RIGHT SINGLE QUOTATION) with ASCII apostrophe "'" -->
 <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="" />
 
 <!-- Replace U+201C (LEFT DOUBLE QUOTE) with ASCII double quote " -->
 <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="" />
 
 <!-- Replace U+201D (RIGHT DOUBLE QUOTE) with ASCII double quote -->
 <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="" />
 
 <!-- Replace U+2026 (HORIZONTAL ELLIPSIS) with ASCII "..." -->
 <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="..." />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace literal &#151; (HTML entity for EM DASH) with ASCII "-" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&amp;#151;"
/>
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2014 (EM DASH) with ASCII "-" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2014;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2013 (EN DASH) with ASCII "-" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2013;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace literal &zwnj; (ZERO WIDTH NON-JOINER entity) with ASCII "-"
-->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&zwnj;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2022 (BULLET) with ASCII "*" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2022;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="&#x002A;" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+8722 (MATHEMATICAL MINUS variant) with ASCII "&" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x8722;" />
 <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="" />
 
 <!-- Replace U+011F (LATIN SMALL G WITH BREVE) with ASCII "g" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x11f;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="g" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2009 (THIN SPACE) with ASCII space -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#8201;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+00E1 (LATIN SMALL A WITH ACUTE) with ASCII "a" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#xe1;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="a" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+0161 (LATIN SMALL S WITH CARON) with ASCII "s" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x161;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="s" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+011B (LATIN SMALL E WITH CARON) with ASCII "e" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x11b;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="e" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2713 (CHECK MARK) with ASCII space -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2713;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2032 (PRIME) with ASCII apostrophe -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2032;" />
 <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="" />
 
 <!-- Replace U+02BC (MODIFIER LETTER APOSTROPHE) with ASCII apostrophe -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x02BC;" />
 <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="" />
 
 <!-- Replace ASCII hyphen "-" with ASCII hyphen "-" (normalize) -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace backtick with ASCII single quote -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="`" />
 <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="" />
 
 <!-- Replace Unicode Arrow (U+2192) with ASCII dash greaterthan --> 
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2192;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="->" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace degree symbol with deg --> 
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00B0;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="deg" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace copyright symbol U??? with (C) --> 
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00A9;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="(C)" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace Trademark (U+2122) with (TM) --> 
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2122;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="(TM)" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace Registered (U+00AE) with (R) -->  
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00AE;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="(R)" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+00AD (SOFT HYPHEN) with "" (remove completely) -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00AD;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2061 (FUNCTION APPLICATION) with "" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2061;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2062 (INVISIBLE TIMES) with "" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2062;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2063 (INVISIBLE SEPARATOR) with "" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2063;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2064 (INVISIBLE PLUS) with "" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2064;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+180E (MONGOLIAN VOWEL SEPARATOR) with "" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x180E;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+200A (HAIR SPACE) with ASCII space -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x200A;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2008 (PUNCTUATION SPACE) with ASCII space -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2008;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2006 (SIX-PER-EM SPACE) with ASCII space -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2006;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2028 (LINE SEPARATOR) with ASCII newline -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2028;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2029 (PARAGRAPH SEPARATOR) with ASCII newline -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2029;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+0085 (NEXT LINE / NEL) with ASCII newline -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0085;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <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>
-- 
Everything is possible if you're intelligent, but it's not always worth it.

[toc] | [prev] | [next] | [standalone]


#3062

From"R.Wieser" <address@is.invalid>
Date2025-12-15 14:44 +0100
Message-ID<10hp3bv$1u718$1@dont-email.me>
In reply to#3059
Arlen,

>> Why is it always /us/ who have to provide you with the information /you/
>> want/need - nonwithstanding how easily its to google ?
>
> The whole point of providing open source code is so everyone improves it.

No.  So that anyone *can* improve on it.

Its just you who thinks that and as such demands from us to do all the hard 
work and fix your steaming shitpiles up into something that can be called 
usefull, and than take all the credit for it.

Proof of that ?   When was the last time you attributed a 
change/fix/addition to someone ?

More proof ?  You have yet to tell me hoe my suggested re-ordering of those 
"the essential trio" macro-command works.   It would have taken you what ? 
All of 10 minutes ?

Heck, you even *complained* that I did not thank you for having having fixed 
all the things I found.

The thing is, kid, *I should not have had to provide you with /any/ of it*. 
As I said, I found that with a cursory inspection.   You ?  *You* should 
have done a thorough inspection and found all of that (and likely more) 
yourself.

Also, someone creating something open source normally takes much pride in 
offering SOMETHING THAT ACTUALLY WORKS AND IS DESCRIBED CORRECTLY.   You 
definitily don't. :-(((

To be honest, I do not even know which part of that macro is npp's and which 
part is yours - if any part of it (besides the things to replace and what to 
replace it with) is actually yours.

> It's fast. Effective. Simple. If anyone has a *better* solution, please 
> let all of us know what that is.

You already have it.  You just, as so often, refuse to (test and) 
acknowledge it.

> Otherwise, this is the best (so far) that I can offer the team to use.
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <!-- C:\app\editor\txt\Notepad++\shortcuts.xml -->
> <!-- Notepad++ shortcuts.xml version 1p3 20251214 -->
> <!-- Use model: ctrl+a (select all), ctrl+b (convert selected set) -->
> <!-- Macro engine command meanings:
>      1700 = begin a new search/replace operation
>      1601 = set the search string (the Unicode character to find)
>      1625 = clear the replacement buffer
>      1602 = set the replacement string (ASCII equivalent)
>      1702 = execute Replace All
>      1701 = end this search/replace block
> -->

Thats funny, as I already gave you better - and you didn't even have to do 
/anything/ for it.

But thats you to the dot. : You get information that your above guesses to 
what those commands mean are incorrect, but you cannot get yourself to 
accept it.  Not when you publicly have to acknowledge that there are people 
in this newsgroup who know more (even just about this) than you.

Tell me : why should an "1701 = end this search/replace block" need to have 
an "lParam=1609" argument ?   Why isn't "lparam" just Zero ? How many kinds 
of "end this search/replace block" would npp need/have ?   What *else* would 
that 1701 command be doing when that "lparam" argument is given another 
value ?    And if it does something different, why did you give the 1701 
command a single "this is what it does" explanation/description ?

You pride yourself on being logical.   If you can't answer the above than 
you should tone-down that pride.  Not that you ever will ofcourse. :-)

Regards,
Rudy Wieser

P.s.
Its always remarkable how you, when you don't get your way, start to throw 
accusations of wrongdoing around, but when asked to quote how/where that 
that happened you always drop the matter like hot potato.

p.p.s.
You don't have to take my words as the truth.  In fact, I always told my 
pupils that they shouldn't.  But I /did/ expect them to use the tools at 
hand - first books, later the internet - to look stuff up and come to their 
own conclusions    Which, surprise, surprise, most always matched what I 
told them (and when not we /both/ had a "learning moment").

As long as you can't even get yourself to do a bit of googeling to 
verify/prove that your own claims are correct / the others (my) claims are 
not you will forever stay willfully ignorant.  That is what your ego is 
doing to you. -|

[toc] | [prev] | [next] | [standalone]


#3068

FromChris <ithinkiam@gmail.com>
Date2025-12-15 22:49 +0000
Message-ID<10hq3aa$28fv6$1@dont-email.me>
In reply to#3062
R.Wieser <address@is.invalid> wrote:
> Arlen,
> 
>>> Why is it always /us/ who have to provide you with the information /you/
>>> want/need - nonwithstanding how easily its to google ?
>> 
>> The whole point of providing open source code is so everyone improves it.
> 
> No.  So that anyone *can* improve on it.

And if they believe it's worth their time. 

[toc] | [prev] | [next] | [standalone]


#3071

From"R.Wieser" <address@is.invalid>
Date2025-12-16 08:29 +0100
Message-ID<10hr1or$2fsj7$1@dont-email.me>
In reply to#3068
Chris,.

>>> The whole point of providing open source code is so everyone improves
>>> it.
>>
>> No.  So that anyone *can* improve on it.
>
> And if they believe it's worth their time.

And they are absolutily allowed to keep such improvements to themselves. 
There is no rule, implied or otherwise, that they *have* to share.

Regards,
Rudy Wieser

[toc] | [prev] | [next] | [standalone]


#3076

FromMarian <marianjones@helpfulpeople.com>
Date2025-12-17 02:12 -0700
Message-ID<10hts5v$m7s$1@nnrp.usenet.blueworldhosting.com>
In reply to#3071
R.Wieser wrote:
>>>> The whole point of providing open source code is so everyone improves
>>>> it.
>>>
>>> No.  So that anyone *can* improve on it.
>>
>> And if they believe it's worth their time.
> 
> And they are absolutily allowed to keep such improvements to themselves. 
> There is no rule, implied or otherwise, that they *have* to share.

I appreciate all your inputs, and the inputs from Chris & others.

The best I can do is share "my code" so that everyone can benefit.

If anyone has a *better* way to "clean" funky text so that it's
consistently ASCII, then please provide that solution so that everyone on
the ng benefits from your acumen, experience, and helpful intent.

Including me.
Since I use that conversion process a hundred times every day.

[toc] | [prev] | [next] | [standalone]


#3084

From"R.Wieser" <address@is.invalid>
Date2025-12-17 13:10 +0100
Message-ID<10hudi9$3ij83$1@dont-email.me>
In reply to#3076
Arlen,

> I appreciate all your inputs, and the inputs from Chris & others.
>
> The best I can do is share "my code" so that everyone can benefit.

My input ?  Looking at your current work and remembering your "turorials" of 
the past I would suggest *not* to share.

As long as you can't be arsed to put even just a few hours worth of work 
into cleaning up your stuff and googeling if your "facts" match the 
available documentation you should keep those "tutorials" to yourself.

As said before, you're not doing the novices - for which you claim to write 
for and which depend on your information to be correct - any favours.  Quite 
the opposite actually.

> If anyone has a *better* way to "clean" funky text

I already did.  Use a bit of (VB)Script, or use one of the available a 
"stream editors".

But hey, doing as if nobody has tried to help you (and likely just waiting 
until someone hands you what you need on a silver platter) is easier than 
doing your own work.

In that regard, you're writing those two words wrong : Its not "we" and 
"team", but "wie" and "teiam".   Yes, I know that they always say that there 
is no "i" in them, but you prove them wrong every time. :-) :-(

> Including me.
> Since I use that conversion process a hundred times every day.

Bullshit, just like your "thousands of tutorials" claim you made.

Ah, I remember once having applied basic calculus to that one, pointing out 
that if you would have churned out one tutorial every week you would have 
needed 1000'nts divided by 52 equals a multiple of 20 years.

Just 2500 tutorials ?   That would have taken *your whole working life*.

And by the way : your reverting of what those six macro lines mean away from 
what I gave you back to what you had initially guessed yourself instead of 
trying to google if mine where perhaps correct (or hell, maybe you did!) is 
the likely the highest level of pettyness you can reach.

But who cares, your ego takes precedence on providing novices (us) with 
facts, right ?   Ofcourse it does. :-(

Regards,
Rudy Wieser

[toc] | [prev] | [next] | [standalone]


#3111

FromMarian <marianjones@helpfulpeople.com>
Date2025-12-22 10:56 -0700
Message-ID<10ic0on$2ui6$1@nnrp.usenet.blueworldhosting.com>
In reply to#3084
R.Wieser wrote:
>> Since I use that conversion process a hundred times every day.
> 
> Bullshit, just like your "thousands of tutorials" claim you made.

I used to write tutorials for a well-known Silicon Valley company.

But moving forward, here's the latest revision of shortcuts.xml.
(It fixes a bug in the non-breaking-hyphen substitution code.)

 <?xml version="1.0" encoding="UTF-8" ?>
 <!-- C:\app\editor\txt\Notepad++\shortcuts.xml -->
 <!-- Notepad++ shortcuts.xml version 1p3 20251214 -->
 <!-- Use model: ctrl+a (select all), ctrl+b (convert selected set) -->
 <!-- Macro engine command meanings:
      1700 = begin a new search/replace operation
      1601 = set the search string (the Unicode character to find)
      1625 = clear the replacement buffer
      1602 = set the replacement string (ASCII equivalent)
      1702 = execute Replace All
      1701 = end this search/replace block
 -->
 
 <NotepadPlus>
 <InternalCommands>
         <Shortcut id="43009" Ctrl="no" Alt="no" Shift="no" Key="0" />
     </InternalCommands>
     <Macros>
 <Macro name="ASCII" Ctrl="yes" Alt="no" Shift="no" Key="66">
 
 <!--  Replace U+2010 (HYPHEN) with ASCII "-"  -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2010;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!--  Replace U+2011 (NON-BREAKING HYPHEN) with ASCII hyphen "-"  -->
 <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="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+0001 (SOH control character) with nothing -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0001;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!--  Replace U+2012 (FIGURE DASH) with ASCII "-"  -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2012;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!--  Replace U+2212 (MINUS SIGN) with ASCII "-"  -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2212;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+200C (ZERO WIDTH NON-JOINER) with "" (nothing) -->
 <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="" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!--  Replace U+200B (ZERO WIDTH SPACE) with ASCII apostrophe "'"  -->
 <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="" />
 
 <!--  Replace U+200D (ZERO WIDTH JOINER) with ASCII apostrophe "'"  -->
 <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="" />
 
 <!--  Replace U+2060 (WORD JOINER) with ASCII apostrophe "'"  -->
 <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="" />
 
 <!--  Replace U+FEFF (BOM) with ASCII apostrophe "'" (strips BOM)  -->
 <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="" />
 
 <!--  Replace U+00A0 (NO-BREAK SPACE) with ASCII apostrophe "'" -->
 <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="" />
 
 <!--  Replace U+2007 (FIGURE SPACE) with ASCII apostrophe "'" -->
 <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="" />
 
 <!--  Replace U+202F (NARROW NO-BREAK SPACE) with ASCII apostrophe "'"  -->
 <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="" />
 
 <!--  Replace U+0F0C (TIBETAN MARK DELIMITER) with ASCII apostrophe "'"  -->
 <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="" />
 
 <!--  Replace U+2018 (LEFT SINGLE QUOTE) with ASCII apostrophe "'"  -->
 <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="" />
 
 <!-- Replace U+2019 (RIGHT SINGLE QUOTATION) with ASCII apostrophe "'" -->
 <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="" />
 
 <!-- Replace U+2032 (PRIME) with ASCII apostrophe -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2032;" />
 <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="" />
 
 <!-- Replace U+02BC (MODIFIER LETTER APOSTROPHE) with ASCII apostrophe -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x02BC;" />
 <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="" />
 
 <!-- Replace U+201C (LEFT DOUBLE QUOTE) with ASCII double quote " -->
 <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="" />
 
 <!-- Replace U+201D (RIGHT DOUBLE QUOTE) with ASCII double quote -->
 <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="" />
 
 <!-- Replace U+2026 (HORIZONTAL ELLIPSIS) with ASCII "..." -->
 <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="..." />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace literal &#151; (HTML entity for EM DASH) with ASCII "-" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&amp;#151;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2014 (EM DASH) with ASCII "-" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2014;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2013 (EN DASH) with ASCII "-" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2013;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace literal &zwnj; (ZERO WIDTH NON-JOINER entity) with ASCII "-" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&zwnj;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2022 (BULLET) with ASCII "*" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2022;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="&#x002A;" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+8722 (MATHEMATICAL MINUS variant) with ASCII "&" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x8722;" />
 <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="" />
 
 <!-- Replace U+011F (LATIN SMALL G WITH BREVE) with ASCII "g" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x11f;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="g" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2009 (THIN SPACE) with ASCII space -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#8201;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+00E1 (LATIN SMALL A WITH ACUTE) with ASCII "a" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#xe1;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="a" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+0161 (LATIN SMALL S WITH CARON) with ASCII "s" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x161;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="s" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+011B (LATIN SMALL E WITH CARON) with ASCII "e" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x11b;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="e" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2713 (CHECK MARK) with ASCII space -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2713;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace ASCII hyphen "-" with ASCII hyphen "-" (normalize) -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="-" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace backtick with ASCII single quote -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="`" />
 <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="" />
 
 <!-- Replace Unicode Arrow (U+2192) with ASCII dash greaterthan --> 
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2192;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="->" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace degree symbol with deg --> 
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00B0;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="deg" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace copyright symbol U??? with (C) --> 
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00A9;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="(C)" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace Trademark (U+2122) with (TM) --> 
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2122;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="(TM)" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace Registered (U+00AE) with (R) -->  
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00AE;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="(R)" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+00AD (SOFT HYPHEN) with "" (remove completely) -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x00AD;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2061 (FUNCTION APPLICATION) with "" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2061;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2062 (INVISIBLE TIMES) with "" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2062;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2063 (INVISIBLE SEPARATOR) with "" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2063;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2064 (INVISIBLE PLUS) with "" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2064;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+180E (MONGOLIAN VOWEL SEPARATOR) with "" -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x180E;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+200A (HAIR SPACE) with ASCII space -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x200A;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2008 (PUNCTUATION SPACE) with ASCII space -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2008;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2006 (SIX-PER-EM SPACE) with ASCII space -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2006;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2028 (LINE SEPARATOR) with ASCII newline -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2028;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+2029 (PARAGRAPH SEPARATOR) with ASCII newline -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x2029;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
 <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
 
 <!-- Replace U+0085 (NEXT LINE / NEL) with ASCII newline -->
 <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1601" wParam="0" lParam="0" sParam="&#x0085;" />
 <Action type="3" message="1625" wParam="0" lParam="0" sParam="" />
 <Action type="3" message="1602" wParam="0" lParam="0" sParam=" " />
 <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>

-- 
I respond as an adult to anyone as long as they act like an adult.
My goal is to help people & to learn more from those people I help.

[toc] | [prev] | [next] | [standalone]


#3115

From"R.Wieser" <address@is.invalid>
Date2025-12-22 19:50 +0100
Message-ID<10ic610$3oma1$2@dont-email.me>
In reply to#3111
Arlen,

>> Bullshit, just like your "thousands of tutorials" claim you made.
>
> I used to write tutorials for a well-known Silicon Valley company.

Kiddo, you have claimed *so many facts* that you could not support with 
evidence that I can't believe this claim either.

Besides, you *again* missed the point : 2500 tutorials would take you 50 
years - *IF* you would be able to churn out on a week, *every* week.

And knowing that research takes time (guess how I know) I don't believe for 
a second you could do that.

> But moving forward, here's the latest revision of shortcuts.xml.

[snip]

Actually, you have already shown us proof that you are unable to churn out a 
tutorial a week with your current subject : you started at december 11, its 
now december 22, and you're not near being finished.  For one, you still 
have to repleace your guesses to what those macro commands mean with 
researched facts.

Regards,
Rudy Wieser

[toc] | [prev] | [next] | [standalone]


#3117

From"R.Wieser" <address@is.invalid>
Date2025-12-22 21:21 +0100
Message-ID<10ic998$3ppf9$1@dont-email.me>
In reply to#3115
Arlen,

>> Bullshit, just like your "thousands of tutorials" claim you made.
>
> I used to write tutorials for a well-known Silicon Valley company.

And I totally forgot to mention the obvious : Looking at the "tutorials" you 
have been posting here in the past years - including the current one - there 
is *absolutily no chance* that you have *ever* actually written one. 
Commercially or not.

Thoug I have to say that, even though your current "tutorial" doesn't even 
come near to being one, its a *lot* better than the ones you posted us a few 
years ago.  At least now you kept yourself to a single subject.   iow, you 
/do/ seem to be able to learn.  Even if its on a glacial speed.

Regards,
Rudy Wieser

[toc] | [prev] | [next] | [standalone]


Page 1 of 4  [1] 2 3 4  Next page →

Back to top | Article view | alt.comp.microsoft.windows


csiph-web