-
Notifications
You must be signed in to change notification settings - Fork 1
/
CHANGES
8314 lines (6930 loc) · 233 KB
/
CHANGES
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
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
See GGR4.100.changes for the original changes around moving from 3.9e to
pK4.0.15.
========== GGR4.101 [21 Feb 2017]
.gitignore
CHANGES
Files added.
Makefile:
Change the PROGRAM build from em to uemacs
epath.h:
Fix a left-over from build testing - change the startup file name
from nuemacs.rc to uemacs.rc
word.c
Change justpara() so that it can handle unicode characters, based on
the fillpara() code from merging.
Get the correct indent from column, not byte offset.
Handle leading whitespace in the paragraph to reformat.
Make the temporary buffer dynamically allocated, to cater for long
strings with no spaces.
Add punctuation handling in ggr-mode.
etc/uemacs.rc
Bind EscR to search-reverse (not the default replace-string).
etc/uemacs.hlp
Put back that Metas that had been changed to Esc.
complet.c
Replace strncpy() calls to populate choices with memcpy(), as we
have to nul-terminate manually anyway.
eval.c
exec.c
input.c
Replace strncpy() calls followed by "manual" nul-termination with
memcpy() ones.
lock.c
Replace strncpy() call into tmpname with just strcpy(), as fname
can't be more the NFILEN anyway.
README
readme.39e
Moved both to the archive directory.
version.h
etc/uemacs.hlp
Update to version GGR4.101
========== GGR4.102 [22 Feb 2017]
word.c
Right-justification in fillpara() was leaving an extra space at eol
after a punctuation mark.
Increment gap as well if dotflag is set.
word.c
justify-paragraph (Esc-J) changes had stopped it working at the
start of a buffer and if there was no whitespace at the start of the
paragraph.
Ignore whitedelete() result and force w_doto to 0 (since at the
start of the buffer it seems to end up as 1).
buffer,c
Just entering <CR> when prompted for "Use buffer:" (^XB) used to
take you back to the last one, but now takes you to "main".
Add back a save of b_name to savnam in swbuffer() missed in the
migration.
tcap.c
display.c
Add test for SCROLLCODE around some declarations to avoid
compilation warnings if this is turned off.
version.h
etc/uemacs.hlp
Update to version GGR4.102
========== GGR4.103 [22 Feb 2017]
display.c
Fix a display issue on de-extending a line (coming back to <~col 80
after having gone beyond there on a long line).
Looks like a code migration issue. The loop in upddex() contained
the 3.9e code, but with the now-absent w_fcol changed to w_fcolor,
which was set to 7 resulting in an off-by-7 on the redisplay (the
underlying data was OK, so a redisplay fixed things).
Replaced with the 4.1 code (but kept the GGR fix on the loop
constraint).
version.h
etc/uemacs.hlp
Update to version GGR4.103
========== GGR4.104 [22 Feb 2017]
input.c
Ensure that getstring doesn't return a garbage buffer, regardless of
returned status.
But beware that some callers use the output buffer as a temporary
prompt buffer!
edef.h
efunc.h
globals.c
names.c
word.c
etc/uemacs.rc
Add eos_chars() function, eos_list global list and eos-chars
macro-callable function to set eos_list.
Use the eos_list in both justpara() and fillpara() for end of
sentence character handling (an additional space) and remove any
such added space from the final sentence of a paragraph.
Define the standard GGR setting ( .!? ) in uemacs.rc.
.gitignore
Added core
archive/example.rc
Added.
version.h
etc/uemacs.hlp
Update to version GGR4.104
========== GGR4.105 [25 Feb2017]
docs/utf8.info
test-files/combining-diacritics
Added
Makefile
Replace "-D_BSD_SOURCE -D_SVID_SOURCE" with "-D_DEFAULT_SOURCE" in
DEFINES for Linux. Some distros warn about this.
basic.c
Use next_utf8_offset()/prev_utf8_offset() to find start of utf8
characters.
display.c
In updpos() we need to allow for the same number of characters
used by vtputc() for *all* non-printing characters.
globals.c
names.c
random.c
word.c
edef.h
efunc.h
etc/uemacs.rc
Rename *ggr.mode to *ggr.style, as it isn't a mode.
random.c
Tidy up the current position display code in showcpos().
utf8.c
utf8.h
Use MAX_UTF8_LEN for max length of a utf8 sequence. Which, since
2003, is 4 (not 6).
Add next_utf8_offset() and prev_utf8_offset() functions.
Removed is_beginning_utf8().
word.c
Change prompt in eos_chars() and display current setting.
version.h
etc/uemacs.hlp
Update to version GGR4.105
========== GGR4.106 [26 Feb 2017]
Makefile
Add back "-D_BSD_SOURCE -D_SVID_SOURCE" while keeping
"-D_DEFAULT_SOURCE" in DEFINES for Linux.
Both need to be there for a transitional period.
Also added "-D_DEFAULT_SOURCE" to the non-Linux branches as the
uemacs code itself doesn't use any of them so is just setting them
for system header files, which can use them or not as they see fit.
archive/original-git.log
The log of changes from the original pK4.0.15 git repository.
etc/uemacs.rc
Add a description of some environment variable settings and set
$overlap to 2 (which was the value used by 3.9e).
fileio.c
file.c
Check for strcpy()ing a name to itself, which happens when
activating an inactive buffer.
The action of strcpy() is undefined for overlapping strings.
On a Mac it will crash...
display.c
Change the unexplained 4 in several malloc()s to be sizeof(unicode_t).
basic.c
Correct the fix in forwpage() to stop before we loop round, and
hence stay on the last line, not go one past it.
(Incorrectly merged from 3.9e.)
input.c
Remove a redundant set of braces around (c == (CONTROL|'I')) as
otherwise the Mac compiler warns about a possible intended
assignment.
version.h
etc/uemacs.hlp
Update to version GGR4.106
========== GGR4.107...
README
CHANGES
KNOWN_ISSUES
Added README, moved CHANGES and BUGS (=> KNOWN_ISSUES) up to main
directory.
random.c
In cinsert(), skip over trailing blank space when looking for a
trailing '{' and keep correct indent count (not one less for blank
lines).
charset.h
efunc.h
estruct.h
Add #ifndef lines to allow for multiple inclusion.
bind.c
input.c
efunc.h
Change ostring() calls to mlputs and some tidying.
Remove unused outstring and (now) unused ostring code and
declarations.
input.c
getname() code re-indented to make it readable.
Changed a while() loop to for().
Increment ttcol during TTputc calls in the expansion code.
word.c
Ensure that text comes back in the original order after multiple
successive delete-previous-word calls.
main.c
Extended usage() to list all available options.
Added -h (for --help) and -V (for --version) options.
Allow options to be given as separate tokens.
Add -d option for specifying config/help directories.
bind.c
eval.c
exec.c
globals.c
main.c
spawn.c
edef.h
efunc.h
epath.h
Redo code that looks for start-up/help files etc.
Add INTABLE and INPATH modes to flook(). Fix calls in bind.c,
eval.c, exec.c, spawn.c
to use the appropriate setting.
Add -i (insecure) command line option and associated global flag.
Only look in current directory in flook() if the insecure (-i)
command line option has been given.
Add set_pathname() to bind.c to allow the command-line processing to
alter the directory path to one given location.
Alter the structure set-ups in epath.h. You can now set the default
table values by defining DFLT_PATH in the compilation options. The
help and start-up file names are now uemacs.hlp and uemacs.rc in all
cases.
version.h
etc/uemacs.hlp
Update to version GGR4.107
========== GGR4.108...
display.c
Add NULL as missing 3rd arg (unused) in updateline() for MEMMAP &
!SCROLLCODE call.
input.c
Extend the VT220 conditional code inclusion to cover the
if (c == 128+27) // goto handle_CSI;
given that the target label is VT220 dependent.
input.c
#ifdef for MSC not MSDOS when checking mbdepth against MAXDEPTH.
word.c
Define "int c" within the #ifndef GGR_MODE block.
tcap.c
Move includes of curses.h and term.h to be within the #if TERMCAP
block.
display.c
globals.c
edef.h
Make chg_width and chg_height global (also used by spawn.c).
spawn.c
Moved code to force full window redraw into force_resize() and call
this before returning from any function with a system() call.
termio.c
Fix ANSI prototyping on some functions.
utf8.c
Fix prev_utf8_offset() to use char for marker and valmask, so we
don't end up sign-extending into an int and failing tests.
version.h
etc/uemacs.hlp
Update to version GGR4.108
========== GGR4.109...
The Great Glyphing code change...
Most of this is about adding a structure to describe a character
displayed at a column (a glyph) which may contain multiple utf8
characters when some are Combining Diacritical Marks, or Zerowidth.
The glyph structure mainly affects vtputc() and updateline() (and
their callers) in display.c, but handling of zerowidth entities
extends elsewhere too.
Makefile
Use gnu99, not c99 as the --std.
basic.c
Skip over zerowidth characters in getgoal().
Tell next_utf8_offset(), prev_utf8_offset() to go to the start of a
glyph (i.e skip over zerowidth chars).
bind.c
In bindtokey() and unbindkey() don't write out the message line
(mini-buffer) prompts if we are processing start-up files.
display.c
Explicitly initialize scrflags to 0.
Move vtcol and vtrow to local static storage (display.c is the only
user).
Change struct video to have an array of struct glyph rather than
unicode_t at the end. Changed parameters to affected routines.
Added set_glyph(), extend_glyph() clone_glyph(), glyph_same(),
glyph_same_array(), is_space(), TTputglyph() and TTput1char() as
static functions.
Add ttput1c() for external callers to reach TTput1char().
Change vtinit() to setup a struct glyph array for the *whole*
vscreen and pscreen arrays (not just the currently in use).
Make the input to vtputc() an *unsigned* int.
vtputc() now checks for a unicode character over the maximum allowed,
and display the replacement character for it.
vtputc() will extend any preceding character glyph on finding a
zerowidth one.
vtputc(), vteeol(), updgar(), scrolls(), updext() now call
set_glyph() to add a character to vscreen.
scrolls(), texttest() use glyph_same_array() and updateline() uses
glyph_same() to check for a display change.
endofline() and updateline() now use is_space() to check for a
space, so we can cater for any added zerowidth modifiers.
TTputc() calls were replace with TTputglyph()/TTput1char() ones and
those functions adjust ttcol.
Added a missing third arg (as NULL) to another updateline() call.
Removed use of n as a column counter in modeline(), as vtcol is
already doing it. Also "unblocked" a code section to remove an
unnecessary extra level of indentation.
Use clone_glyph to move vscreen glyphs to pscreen ones in
updateline().
Use sigaction(), not signal(), to set-up signals (portability).
edef.h
Removed vtrow and vtcol (now local to display.c).
efunc.h
Added ttput1c() and mlreplyall(). Removed (unused) do_backtrace().
estruct.h
Include utf8.h.
Define END_UCLIST.
Lined up comments.
etc/uemacs.rc
Added some char-replace settings.
globals.c
Removed vtrow and vtcol (now local to display.c).
input.c
Added mlreplyall() to get all of the function args in one go when
called from a start-up script.
Some TTputc() calls changed to ttput1c().
Add a SIGWINCH (if defined) handler for getstring to abort the
minibuffer if it occurs. Being in a minibuffer confuses the redraw.
Needs various signal block to ensure we don't pass though
set-up/take-down code twice.
line.c
line.h
Added lgetglyph() to get the struct glyph for the current character
(or just its length).
Changed ldelchar() to use lgetglyph() for how many bytes to remove.
main.c
Some TTputc() calls changed to ttput1c().
Removed the no longer used #define maindef
Use sigaction(), not signal(), to set-up signals (portability).
names.c
Added "char-replace" => char_replace() function mapping.
random.c
In showcpos() use lgetglyph() to get the full glyph data for the
current character. Display the number of bytes (and unicode
characters( used in the glyph if more than one.
Update getccol() to handle zerowidth characters.
Modified twiddle() to handle multibyte and zerowidth characters.
spawn.c
Some TTputc() calls changed to ttput1c().
utf8.c
utf8.h
Modified utf8_to_unicode() to check that the resulting character is
not more than the maximum utf8 allows.
next_utf8_offset() and prev_utf8_offset() now have an option to skip
over zerowidth characters.
Added zerowidth_type() function and associated data structure.
Added char_replace() function to map non- (or poorly) represented
characters to a (user-configurable) replacement one. The list of
what to map is also user-configurable.
Added display_for() to work out what should be displayed for a given
unicode character.
word.c
Changed the end-of-sentence coding to use END_UCLIST as an end
marker rather than 0xffffffff (for consistency).
test-files/combining-diacritics
Added a few more lines
test-files/1ffff
test-files/3uc-test
test-files/3uc-together
test-files/3uc-together-twiddle
test-files/overrun.txt
Added some small test files. May extend/document more later.
TODO
Added to the top-level, as a reminder....
version.h
etc/uemacs.hlp
Update to version GGR4.109
========== GGR4.110
tcap.c
Change tcapkclose() to not send TE for the systems where it has just
sent it in tcapclose().
bind.c
If flook is sent a pathname, check just that and don't look in HOME,
along PATH or in the table.
spawn.c
Forbid the running of external commands when you are in the
minibuffer (spawncli(), spawn(), execprg() and pipecmd()).
There's a forced redraw on return, which ends up clearing the
minibuffer data, while displaying its status in the status line.
estruct.h
Set XONXOFF and NATIONL to 0 if GGR_MODE is defined.
posix.c
Add turning off of IXON if XONXOFF is not set (as done in termio.c).
Enables ctl-Q and ctl-S to be usable for commands.
bind.c
names.c
efunc.h
Added an include-file command (for use in start-up files) to include
another file for processing at that point.
word.c
Fix justpara() and fillpara() when adding an eos space at the end of
a line in the middle of a paragraph.
main.c
Redo command line parsing.
Add options:
-c<filepath> replacement for default rc file
-x<filepath> an additional rc file
version.h
etc/uemacs.hlp
Update to version GGR4.110
========== GGR4.111
bind.c
exec.c
names.c
efunc.h
Merge the include-file code added in GGR4.110 with execute-file, as
they are essentially the same.
main.c
Further command line handling tidying up.
Fix -v/-e option handling when mixed in with filenames.
Remove second startup file check (after handling filenames) and the
now-redundant startflag variable.
display.c
spawn.c
Fix up for screen refresh on return from external commands.
Call newscreensize() at beginning and end of update(). Add a new arg
to it to stop it calling update() when it is called from the start
of update(). This ensures that term.t_nrow and term.t_ncol are set
to "correct" values before we set off. [display.c]
In updgar() and updupd() only update the minibuffer line when we are
actually using the minibuffer. This allows us to remove the added
mberase() call at the end of newscreensize(). [display.c]
Add get_orig_size() to save the original screen size before
system() calls.
force_resize() checks the current col/rows and only sets the chg*
variables to force a redraw if things have changed and also to set
term.t_nrow and term.t_ncol back to what they were, not to 0, which
can cause redraw issues in display.c.
Renamed to check_for_resize(). [spawn.c]
version.h
etc/uemacs.hlp
Update to version GGR4.111
========== GGR4.112
main.c
Fix the -e/-v handling once we get to looking for files on the
command line. You can use -v/-e to toggle view mode on/off as you go
through the file list.
display.c
file.c
main.c
region.c
Add in some buffer-narrowing code missed in the GGR migration to
prevent you saving a narrowed buffer without first being queried.
[display.c, file.c]
In quickexit(), add back the mlwrite("\n") call when Saving files.
This lets the user see which is affected if there is a narrowed
buffer involved. Also, if the user aborts redraw the screen to
remove these filenames. [display.c]
When narrowing a region, move whichever of mark and point is further
through the file to the start of the next line if they are not at
the start of a line. So you get any line if you are in the middle
of it (this already happens to whichever is first in the file).
When rewidening, redraw the screen with the start of the narrowed
region in the middle of the window, which makes it more obvious that the
other text has returned.
[region.c]
version.h
etc/uemacs.hlp
Update to version GGR4.112
========== GGR4.113
word.c
Fix the re-allocation need check for wbuf to cater for char vs.
unicode_t sizes.
tcap.c
Make curses.h and term.h inclusion conditional, so CygWin and MinGW
builds can work.
display.c
efunc.h
Allow mlforce() to take a variable number of args by changing
mlwrite() to mlwrite_ap() and making both mlwrite() and mlforce()
front ends to that.
bind.c
buffer.c
ebind.h
edef.h
efunc.h
estruct.h
exec.c
globals.c
main.c
Make the key table dynamically assigned (so no longer a fixed
maximum number of bindings) and enable key binding to user-defined
procedures.
Add checks for given buffer/procedure name being too long. Silent
truncation to 14/15 characters could result in running an
unintended procedure.
Change "special" buffer names from *name* to /name, since the
latter leaves more room for "name" and also cannot be generated
from a filename.
etc/uemacs.rc
Updated to use the new buffer-to-key binding implemented above.
This runs the user-defined store-procedure methods directly.
Entries from the 40 hard-wired store-macro names are no longer
used.
main.c
Fix -v/-V handling for consistency.
../CHANGES
../KNOWN_ISSUES
../README
version.h
etc/uemacs.hlp
Update to version GGR4.113
========== GGR4.114
epath.h
Set DFLT_PATH to the "standard" locations of /opt/local/etc/ then
/usr/local/etc/ for Unix-style systems.
buffer.c
exec.c
file.c
line.h
Added lfillchars macro to fill line text buffer using memcpy()
rather than looping one char at a time.
line.c
linstr() takes a char * arg, but was passing this on to linsert(),
which expects a unicode arg, and runs unicode_to_utf8() on it!
Changed linstr() to call linsert_byte() instead.
etc/uemacs.rc
Removed H (horizontal scrolling) mode from the toggle-lmode and
toggle-gmode macros, as it no longer exists.
buffer.c
exec.c
file.c
globals.c
line.c
main.c
names.c
spawn.c
efunc.h
estruct.h
Added code to handle "phonetic translation tables" on input.
This allows you to define a table of strings that will be mapped to
other strings, allowing for simple input of utf-8 characters.
You may have multiple tables, but only one is ever "ready". Usage is
defined by a mode (Phon) which may be turned on/off.
ptt/czech.cmd
Created a ptt/ directory for ptt tables and added a Czech one.
../CHANGES
../README
version.h
etc/uemacs.hlp
Update to version GGR4.114
========== GGR4.115
ptt/czech.cmd
Fix the z~ mapping.
basic.c
random.c
utf8.c
utf8.h
Remove the unneeded third arg (maxlen) from prev_utf8_offset(). When
going backwards the *minimum* offset is always 0!
Makefile
exec.c
make use of the Julia language utf8/unicode library
https://julialang.org/utf8proc/
to detect character types.
This first test was to determine the character type for a
beginning-of-word test in phonetic translation table handling.
The Julia language utf8/unicode library is now a pre-requisite for
this version of uemacs (an beyond).
Simplify the code by removing various ifdefs by noting that we always
want:
PKCODE = 1 // We are extending the pK version
GGR_MODE = 1 // We really are extending the pK version
EBCDIC = 0, ASCII = 1 // We're using Unicode
VMS = 0 // No longer of use...
This will simplify the switch to using the Julia language utf8/unicode
library generally.
>>> VMS deletions
Makefile
vmsvt.c
Deleted.
complet.c
file.c
fileio.c
input.c
main.c
search.c
spawn.c
termio.c
epath.h
estruct.h
Deleted VMS references.
isearch.c
Deleted IS_VMSFORW and IS_VMSQUOTE (also from estruct.h)
>>> EBCDIC/ASCII removal
estruct.h
Delete EBCDIC. Enable all ASCII.
Also remove IBMCHR, as we will be replacing isletter(), islower() and
isupper() with unicode versions.
>>> GGR_MODE forced
display.c
word.c
estruct.h
Removed GGR_MODE assuming it to be set.
Also removed NATIONL, as we will be replacing isletter(), islower()
and isupper() with unicode versions [estruct.h].
>>> PKCODE forced
ansi.c
basic.c
display.c
file.c
fileio.c
globals.c
ibmpc.c
input.c
isearch.c
main.c
names.c
random.c
search.c
spawn.c
tcap.c
termio.c
word.c
ebind.h
edef.h
estruct.h
Removed PKCODE assuming it to be set.
Except for:
Enable "#" for truncated files. [display.c]
basic.c
word.c
forword(), backword(), upperword(), lowerword() and capword() were
changed to know about display characters (glyphs) and also to use the
Julia utf8 library for character types (letters/non-letters) and case
changing (upper letter to/from lower letter).
Updated some comments to reflect that backchar()/forwchar() move by n
display characters (glyphs) not bytes (have done since GGR4.109).
basic.c
display.c
exec.c
line.c
random.c
utf8.c
word.c
line.h
utf8.h
Changed all references to glyph (including comments) to use grapheme
instead, as that is what the Unicode documentation uses for the
concept of the data to describe a sequence of coded characters that
âshould be kept togetherâ and there a glyph is something different.
No code change.
exec.c
random.c
Changed token() [exec.c] to not add the starting quote to a quoted
token (it never added the closing one!).
Changed istring [random.c] to treat the response as a set of token,
and handled Unicode (U+xxxx) and utf8 bytes (0x..) in those.
This allows you to enter known Unicode character points and utf8 code
sequences. "Normal" text strings can still be added - but you now
need to put them in "..." if they contain spaces.
random.c
In showcpos(), remove the printing of the decimal code, and just
display the unicode codepoint as U+xxxx.
ptt/russian.cmd
ptt/czech.cmd
etc/uemacs.rc
Added a Russian pttable and moved the toggle-pttmode key binding to
the main start-up file.
etc/uemacs.hlp
Added some information at the end about recent additions to macros
(eos-chars, char-replace, pttables, use defined procedure key
binding.
Makefile
Added code to enable finding the Julia utf8proc lib, and exit with
an error if unable to find it.
../PREREQUISITE
../README
Added a specific note about the use of the Julia utf8proc lib and
also commented on it in the README file.
Makefile
Added code to look for curses term.h.
Probably specifc to Oleg's router distros, but could be extended
for others as necessary.
../CHANGES
version.h
etc/uemacs.hlp
Update to version GGR4.115
========== GGR4.116
Makefile
Allow for version numbering on any local utf8proc directory name.
edef.h
efunc.h
random.c
Disable toggling Phon mode on via adjustmode() if no pt_table is
yet defined.
Made adjustmode() static.
eval.c
evar.h
Add inmb system variable, so macros can check for being, and disable
use, in the minibuffer.
etc/uemacs.rc
Change toggle-lmode/toggle-gmode to check $inmb and simplified(?)
code.
Added "P" (Phon) as a valid mode to toggle.
Standardized mode chars to be those used by buffer displays.
etc/uemacs.rc
Make the file-hooks macro look at the filename for the buffer, not
the buffer name, as it was failing on long filenames where the
buffer name is truncated.
utf8.c
Remove a bug introduced in GGR4.109 (why? - unknown) that prevented
unicode 0x80-0xbf being converted to utf8.
word.c
efunc.h
Expose the ensure_case() function so that it can be used by the ptt
code in exec.c
etc/uemacs.rc
Tidy up (remove debug code...) of toggle-lmode/toggle-gmode change.
basic.c
display.c
utf8.c
Change utf8_to_unicode() so that it checks the incoming args and
returns a value of 0, with a returned codepoint of 0, if the index
is outside the given len range,
Corrected getgoal() [basic.c], mlwrite_ap() and mlputs() [display.c]
to ensure they don't call utf8_to_unicode() with index >= len.
exec.c
globals.c
utf8.c
estruct.h
utf8.h
NOTE: globals.c was erroneously checked in as part of commit:
01f484596f198e02339ddf60d57f933ef5272239
Add code to handle casing options in Phonetic Translation tables.
These can now do case modification of the replacement text.
The tables can contain these commands:
caseset-on [which is the default setting]
caseset-capinit1
caseset-capinitall
caseset-lowinit1
caseset-lowinitall
caseset-off
Each applies to all following replacement rules until the next
caseset-* command or the end of the table is reached,
For caseset-off the replaced text is treated verbatim and it will do
a verbatim replacement on a match.
For the other cases the replaced text is checked case-insensitively.
For caseset-on it will force upper-case of the replacement on a
match if the first character in the replaced string is uppercase.
For caseset-cap* it will uppercase the first character of the string
(capinit1) or all words (capinitall). The caseset-low* are similar,
but force lowercase if the first character of the replaced string is
lowercase.
tolower_utf8(), uclen_utf8(), nocasecmp_utf8() and unicode_back_utf8()
functions added [utf8.c]
line.c
As utf8_to_unicode() now checks its args, lgetgrapheme() now needs
to check for being at EOL and return a NL grapheme, so ldelchar()
knows there is 1 byte to step over.
basic.c
exec.c
random.c
word.c
Fix for delfword()/delbword(). These use forwchar()/backchar() to
move over the section to delete, but these functions now move by
grapheme, so you can no longer just count the number of calls and
delete that number of bytes.
Changed forwchar()/backchar() to return the number of bytes moved
and fixed all callers accordingly.
ptt/czech.cmd
ptt/russian.cmd
Edited to take account of the caseset-* commands to simplify/shorten
tables.
basic.c
eval.c
exec.c
isearch.c
line.c
names.c
random.c
region.c
search.c
word.c
ebind.h
efunc.h
Rename forwchar()/backchar() to forw_grapheme() and back_grapheme()
as that is what they (now) do, and this should help to avoid
confusion.
Changed the return value of both functions on an incomplete move to
be minus the actual move. Adjusted callers accordingly.
display.c
exec.c
estruct.h
Added display-code option to ptt tables to let you give a
2-character code to display in the mode line when it is on. It is
preceded by "P-" and defaults to the first two characters of the
d table name.
Added an internal function, show_utf8(), to display.c to handle
utf8 strings in the modeline.
../CHANGES
version.h
etc/uemacs.hlp
Update to version GGR4.116
========== GGR4.117
exec.c
Set the WFMODE mode on the buffer after setting the ptt table, so
that the modeline gets updated with the change, if it is in use.
exec.c
Unset ptt_storing after compiling a pttable in dobuf().
exec.c
names.c
efunc.h
Added next-pttable function, to cycle through pttables.
posix.c
Correct the number of characters to wait for.
Only wait if we are at the start of an extended utf8 sequence, or
have an Escape character.
Replace the tcsetattr() call (doesn't seem to timeout on Ubuntu under
Windows on Windows10?) with poll().
input.c
Make display_handler dynamic, not static, so that it can handle
recursion in the minibuffer.
basic.c
globals.c
word.c
edef.h
Remove (unused) justflag from ctrulen(), renamed it to
curline_empty() (which is how it is used) and simplified it.
etc/uemacs.rc
Combined local and global toggle mode macros.
Unbound Esc-^T (newwidth) as it is no longer needed with SIGWINCH
handling and just messes up the display.