-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.README
358 lines (266 loc) · 14.5 KB
/
.README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
##############################################################################
##
## Copyright (c) 2020-2024 Frank Eskesen.
##
## This file is free content, distributed under the MIT license.
## (See accompanying file LICENSE.MIT or the original contained
## within https://opensource.org/licenses/MIT)
##
##############################################################################
##
## Title-
## .README
##
## Purpose-
## EDITOR README information file. (XCB version)
##
## Last change date-
## 2024/09/03
##
## Implementation notes-
## See ".USAGE.md" for usage and implementation information.
## See TODO section to see what can be implemented.
##
##############################################################################
##############################################################################
## STATUS:
2024/09/03 Fully operational. Deprecated Utf.h typedefs and functions removed.
NO known problems. In production test (updating Utf.h documentation.)
##############################################################################
## OPEN:
2024/08/23 UTF-8 does not work properly on Linux.
(Hopefull) temporary bypass: On Linux, xtmedit doesn't allow saving
files containing UTF characters. These characters do not display
properly. They display properly on Cygwin.
##############################################################################
## CHANGE LOG:
2024/09/03 Fixed block column display problems (Term and Xcb versions)
If mark.mark_lh < col_zero, the mark disappears for that line and the
right-hand mark column was incorrectly calculated.
2024/08/27 Corrected all insert after line with no delimiter conditions.
Insert after no-delimiter (binary) line not allowed.
2024/08/23 Utf.h decoders and encoders used throughout both editors. The
xcb editor does not combine characters. The xterm editor handles
combining characters on Cygwin, but these characters display as
gibberish on Linux.
2024/05/11 UTF fully implemented.
Combined characters are combined and
the column count is correct for what's displayed.
2024/04/12 Initial version of NCURSES editor using XCB editor logic.
2024/04/11 Margins corrected.
2024/04/10 CYGWIN: Mouse pointer disappears on window focus out. (FIXED)
2024/04/10 Mark format (ctrl-P) works under more conditions.
2024/04/05 Restructure: Replaced EdTerm.*/EdTinp.cpp with EdOuts.*/EdInps.*
Rather than including EdTinp.cpp, EdInps is the base for EdOuts
2024/04/02 xcbedit feature update
- INSERT command: Insert file after cursor (with redo/undo)
- MARGINS command: Set/display margins for paragraph function (ctrl-P)
- TABS command: Set/display screen tabs
- Implemented forward/reverse tabs: update cursor position
- Implemented ctrl-P (paragraph) function
Restructured modules, splitting some functions into .hpp files.
- EdBifs.cpp
- Moved tabs and margin functions into EdTabs.hpp, included by EdBifs.cpp
- EdFile.h
- Split and added EdRedo.h, EdLine.h, and EdMess.h declaration files
- EdFile.cpp
- Moved EdRedo.h, EdLine.h, and EdMess.h implementations into
EdRedo.hpp, included by EdFile.cpp
2023/05/17 Backspace needed to call draw_top handle top background.
2023/05/12 Fixed: Unable to control windows size update on GNOME.
We no longer truncate the window size to exactly fit columns/rows.
Instead, we do not display incomplete columns or rows.
2023/05/12 Fixed: Blank line with tabs: detab command does not remove tabs.
Note: For performance, DETAB does not support UNDO/REDO.
2023/05/12 Remove background pixel boundary from settings/history line.
2023/05/05 Don't add duplicate messages to the message list.
Added Ctrl-Enter (synonym for Alt-I: insert line)
Added UNDO/REDO commands.
2022/12/30 The history/message line now separate from the status line.
The status line is always present.
Renamed EdInps.cpp => EdTinp.cpp.
2022/12/29 Renamed EdText to EdTerm, also changing this file.
2022/12/20 Default running detached from command line.
This can be overridden using the '--fg' parameter.
2022/08/25 Redo/Undo on modified line yields inconsistent REDO (crash)
FIX: Commit current line before processing redo.
2022/08/25 Disallow change command for read-only files.
2022/08/01 MINOR: Looking at trace the EdView temporary copied line was being
traced during delete but not when allocated.
EdView and EdFile.EdLine now avoid line delete tracing for that
temporary line.
2022/03/15 Use Trace::trace functions rather than Config::trace.
Use ~/.config/xcbedit/ rather than ~/.config/uuid/.../ for debug
and trace output.
2022/03/29 Use Ctrl-Esc to enter ESC character, just like Ctrl-Tab.
Problem: Ctrl-Esc and Alt-Tab are Windows control sequences, so
we don't have a clean and common mechanism.
Solution: Use sequence `Alt-\` to indicate that the next character
is to be "escaped". Added support for Alt-\ + (\b, \t, or \e).
2022/02/23 Synchronization commit. Added .README TODOs (only.)
2021/12/21 Usability: Added "list" command to display the command list
Usability: Hitting F4 again removes the "No Files Changed" message
2021/10/01 Fix: EdView.draw_active uses EdTerm.draw_line for display.
(EdHist.draw_active writes line directly.)
2021/09/08 Mark display update works improperly when line changed.
2021/08/24 Block column move on a blank line left trailing blanks.
2021/08/08 Fixed some user interface annoyances.
2021/08/08 User interface: limit history list to 8 lines
When the list is over long, it's usually easier to retype a line.
2021/08/08 User interface: button should not cause scroll up.
This would occur when button pressed below end of file line.
2021/06/26 Hardened Utf8 support, fixing block copy.
2021/06/24 Fixed: UNDO changed active data line, cursor on history line.
EdInps.cpp needed to use redraw data, not view.
(Restructured data_active subroutine, moving it to EdView.cpp)
2021/06/23 Fixed: Cursor moves on data left click while in history view.
EdInps.cpp should use data, not view, for cursor row adjustment.
(view is a local variable and still points to history.)
2021/06/23 Fixed: Undo change line leaves characters on display.
EdTerm::get_text now adds blank fill.
2021/06/23 Fixed: Line numbers get messed up when cut offscreen before mark
Fixed EdFile, EdMark, and EdTerm. (Works, but code feels fragile.)
2021/06/17 Fix: A top line change disappears after mark below. (The change
is in the file, but not properly displayed on the screen.)
The problem is that EdTerm wasn't made aware when a head line is
removed. Fixed by creating a redo signal with an EdTerm listener.
2021/06/17 Added Alt-Pause for debugging: Dump, halt tracing
2021/05/23 Fix: pub::debugging::debug_backtrace replaces Config.backtrace
2021/04/22 Fix: Insert/delete/bs character on line with column mark display
2021/04/22 Usability: Wheel mouse always moves data screen
2021/04/10 Fix: EdMark.cpp: Delete when no mark present.
2021/04/08 Usability improvement: Only show data cursor when Window in focus.
2021/03/22 Fixed file write on different filesystem than save file.
2021/03/15 Added DETAB command, fixing some screen handling glitches.
Separated EdTerm.cpp into EdTerm.cpp, EdInps.cpp
Added keypad character handling.
Handle directory and unusable files better.
2021/03/04 Added protection for Ctrl-TAB on protected line.
Removed the commented out EdMark debugging code.
2021/03/03 Ctrl-TAB used for actual tab character.
An easy to implement TODO, but committed implementation incomplete.
2021/03/02 Some TODOs done, including implementing read/only file.
2021/02/28 Implemented locate/change options, including set command
Added REDO/UNDO for EdFile::set_mode.
2021/02/21 Direct block copy/move (Ctrl-C/Ctrl-M) operational
2021/01/24 Xcb subdirectory moved to ~/src/cpp/inc/gui and ~/src/cpp/lib/gui
Fixed block cut bug.
2021/01/22 Code review. Xcb/Edit now used by author as default editor.
2021/01/16 Block copy/paste operational using Ctrl-C/Ctrl-V or Ctrl-X/Ctrl-V
2021/01/10 Restructure. Removed TextWindow, function merged into EdTerm.
2021/01/03 Bug fix: EdBifs editor::command, data->commit before any command
lib/pub/Parser.cpp: Data extraction iterator; Allow duplicate lines
Config.cpp: Configurable screen colors.
2020/12/15 Added built-in edit function with wildcard name resolution.
Updated pub library (wildcard file name compare)
EdMark greatly improved.
Updated ~/src/obj/git from ~/obj/.git
Other built in functions added or scaffolded.
Some objects and functions renamed and/or refactored.
Removed unused test objects. Only EdMisc remains.
2020/12/11 EdMark implemented (Working, needs usage test)
2020/12/09 Moved Xcb/Edit => Edit/Xcb
2020/12/08 Refactored Editor/Config into a single namespace
2020/12/04 Command line handling.
2020/11/12 Fixed Signals, moving it to pub library (ADL issue)
2020/10/15 Debugged xcb_xfixes_hide_cursor not working
(It's a Cygwin problem. It works properly on native Fedora Linux.)
Button handlers implemented. (But not command handling.)
Line and column numbers handled more accurately.
2020/10/12 Editor singleton object available using Editor::editor
Fixed Active::replace_text (insert_char wasn't working properly)
2020/10/11 Improved UTF8 handling and documentation
Combining characters are not handled properly; They don't combine.
Multiple size_t aliases defined for different purposes.
(This does not prevent mis-use, but does clarify usage.)
2020/10/02 Pixmap is now the base drawable.
Deferred truetype font implementation.
2020/09/06 Basic editing functions implemented.
Valid only as quasi-working XCB example program.
2020/09/07 (MORE) Pre-requisite packages
(Red Hat Fedora) Linux:
xcb-util-cursor-devel
Cygwin:
libxcb-cursor-devel
2020/09/06 Linux pre-requisite packages
(Nothing new installed: /usr/include/xcb already up to date.)
2020/09/06 Cygwin pre-requisite packages
libX11-devel (probable maintenance update)
/usr/include/X11/XKBlib.h [[ NEEDED ]]
libxcb-devel [[ PREREQUISITE ]]
/usr/include/xcb/xcb.h
/usr/include/xcb/xproto.h
/usr/lib/libxcb.dll.a
libxcb-xfixes-devel [[ PREREQUISITE ]]
/usr/include/xcb/xfixes.h
/usr/lib/libxcb-fixes.dll.a
[[ Needed, already present ]]
/usr/include/X11/keysymdef.h
2020/07/19 Started
##############################################################################
## TODO:
>>>>>>>> TODO Search reminder
Greps: -i {"TODO", "USE_BRINGUP", "NOT CODED"} {"HCDM"}
2024/04/04 Add disable caps lock option
2024/03/04 Cannot read long error message.
Need to be able to use '<', '>', and 'END' keys or some way of
moving error message line into a buffer.
2024/03/04 Cursor should move with scroll to top or bottom of screen.
2022/04/11 Implement system clipboard.
2021/07/03 Clone view (named view://filename)
Clone a file for split viewing. The view is read-only.
(No lines need to be allocated. They can just be copied.)
2021/03/04 Consider EdView restructure
Consider EdView base class, EdData/EdHist based on that.
Consider splitting: Editor.cpp and EdFile.cpp.
Also: Config.cpp is 911 lines and Config.patch is ugly.
For directories, load the file names. (Protected file)
Draw full background on line 0 (status, message, history)
Multiple editor windows. (Restructure required.)
(May not be too hard. Only one window open at a time.)
2020/09/05 ** EXPERIMENTAL **
Code review. Completely test all implemented functions.
==> Invalid font: Need better user error message
Multiple windows. (No search, status, command, or message lines)
File write not implemented.
Hide system cursor when typing. (Show when moving mouse.)
Is draw optimization (double buffering) required?
2020/07/28 gui::Device base class: Widget or Window?
For now, gui::Window
2020/07/28 Need to check whether file is a file or a directory.
If directory, load R/O file list, selectable files/directories
##############################################################################
## DONE:
2020/07/28 Background file loader. Synch with EdTerm
********** Not needed. Even big files load quickly.
2022/02/22 Run as a thread so that exitxcb has same window appearance as xterm
2022/12/20 Only needed fork() in Edit.cpp
2022/04/11 Run detab command in background. Use one undo/redo for the entire
detab. Find first/last detab lines; Those bound the detab.
2022/02/18 Add DIR command, DIR load, Copy block to history
Special handling for these DIR/BUFFER files
2024/03/04 Not needed enough with workaround:
dir command creates file list buffer
ctrl-F9 copies cursor line to history line
##############################################################################
## DEFERRED:
2020/10/02 Fontconfig / Truetype fonts
Fontconfig easy enough to use.
Truetype extremely difficult to use.
ONE working example found.
Most documentation is incomplete. That which exists mostly
recommends using a higher level interface rather than the X11/XCB
interface. While looking at the associated higer level source
code could be an option, it would be too time consuming.
##############################################################################
## FEATURE:
2021/12/21 EdBifs::command_list improved usability.
Instead of using printf, list the commands in a read/only buffer.
2021/08/28 ?? Change background color in data view rather than status view
when the file is changed ?? Or both?? color = r,g,b;r,g,b
2021/08/28 ?? Save/file command sets data view (to see line number)
##############################################################################
## CLOSED:
2021/08/08 Closed, not reproducable. (Probably fixed by 6/23 or 6/24 change.)
2021/06/18 Bug: Two cursor blocks on screen.
Associated with clicking on screen when in history view.