Merge from origin/emacs-26
a87ce5c4b4
* src/lisp.h (GCALIGNED): Clarify comment (Bug#29040).8a31e9993f
; etc/NEWS: Add cpp-message-min-time-interval. (Bug#28961)ac0bb9a192
Improve the doc of eshell-cmpl-* custom variables (Bug#25069)36400c7dc9
Fix mouse-scrollbar offset on GNUstep and old macOS (bug#2...04bc1410c2
Merge from Gnulib6b08ad5263
Fix alignment portability problemsa9f8706fa8
Fix completion of colon after CSS property (Bug#29056)9031dec527
; * src/alloc.c (sweep_symbols): Fix last change.fdd3dcfa4e
* src/alloc.c (sweep_symbols): Tweak last change27964af438
In frame parameters documentation mention desktop saving/r...1bd4e7c243
; Fix typo in ChangeLog.34182a60d31
Don't have frameset save the 'client' parameter (Bug#29067)9d31a97092
; Spelling fixes460a25f212
Handle generic variables in cl-defgeneric Edebug specdc0a25c2f9
Give a more sensible message if file-attributes fails (Bug...8453423c7c
Avoid wrong value from file-attributes on Linux kernel bef...70621e2571
Fix customization of debugger-print-function (Bug#29077) # Conflicts: # etc/NEWS
This commit is contained in:
commit
aa75424672
27 changed files with 174 additions and 133 deletions
|
@ -7523,11 +7523,11 @@
|
|||
|
||||
2016-02-23 Jan Tatarik <jan.tatarik@gmail.com>
|
||||
|
||||
Don't bug out on localised dates in gnus-icalendar
|
||||
Don't bug out on localized dates in gnus-icalendar
|
||||
|
||||
* lisp/gnus/gnus-icalendar.el
|
||||
(gnus-icalendar-event:org-timestamp): Don't bug out on
|
||||
localised dates.
|
||||
localized dates.
|
||||
|
||||
2016-02-23 Drew Adams <drew.adams@oracle.com>
|
||||
|
||||
|
@ -26654,7 +26654,7 @@
|
|||
Introduce new macros to cover Emacs's new names in cl-lib.el
|
||||
This also eliminates `mapcan' warnings in XEmacs.
|
||||
* lisp/progmodes/cc-defs.el (c--mapcan-status): New variable to
|
||||
characterise [X]Emacs versions.
|
||||
characterize [X]Emacs versions.
|
||||
(top-level): Require either 'cl or 'cl-lib, depending on
|
||||
c--mapcan-status.
|
||||
Change this back to cc-external-require from an eval-when-compile
|
||||
|
|
50
ChangeLog.3
50
ChangeLog.3
|
@ -4336,8 +4336,8 @@
|
|||
|
||||
* lisp/progmodes/cc-mode.el (c-parse-quotes-before-change)
|
||||
(c-parse-quotes-after-change): Rewrite the functions, simplifying
|
||||
considerably, and removing unnecessary optimisations. Invalidate two caches
|
||||
after manipulating text properties.
|
||||
considerably, and removing unnecessary optimizations.
|
||||
Invalidate two caches after manipulating text properties.
|
||||
|
||||
2017-09-03 Alan Mackenzie <acm@muc.de>
|
||||
|
||||
|
@ -7462,7 +7462,7 @@
|
|||
The error happened when there was a comma inside template delimiters.
|
||||
|
||||
* lisp/progmodes/cc-fonts.el (c-get-fontification-context): In "for"
|
||||
statements, recognise template delimiters containing "," and "&".
|
||||
statements, recognize template delimiters containing "," and "&".
|
||||
|
||||
2017-07-27 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
|
@ -17907,7 +17907,7 @@
|
|||
|
||||
* src/casefiddle.c (struct casing_context, prepare_casing_context): Add
|
||||
titlecase_char_table member. It’s set to the ‘titlecase’ Unicode
|
||||
property table if capitalisation has been requested.
|
||||
property table if capitalization has been requested.
|
||||
(case_character): Make use of the titlecase_char_table to title-case
|
||||
initial characters when capitalising.
|
||||
|
||||
|
@ -17923,7 +17923,7 @@
|
|||
the logic easier. This commit introduces no functionality changes.
|
||||
|
||||
* src/casefiddle.c (struct casing_context, prepare_casing_context): New
|
||||
sturcture for saving casing context and function to initialise it.
|
||||
structure for saving casing context and function to initialize it.
|
||||
(case_character): New function which cases character base on provided
|
||||
context.
|
||||
(do_casify_integer, do_casify_multibyte_string,
|
||||
|
@ -21210,7 +21210,7 @@
|
|||
|
||||
2017-02-24 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
Minor redisplay optimisations
|
||||
Minor redisplay optimizations
|
||||
|
||||
* src/frame.c (Ficonify_frame): No need to redisplay everything.
|
||||
|
||||
|
@ -24018,9 +24018,9 @@
|
|||
|
||||
2017-01-26 Lars Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
(message-do-fcc): Modernise the code slightly.
|
||||
(message-do-fcc): Modernize the code slightly.
|
||||
|
||||
* lisp/gnus/message.el (message-do-fcc): Modernise the code slightly.
|
||||
* lisp/gnus/message.el (message-do-fcc): Modernize the code slightly.
|
||||
|
||||
2017-01-26 Lars Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
|
@ -26014,7 +26014,7 @@
|
|||
|
||||
2016-12-30 Alan Mackenzie <acm@muc.de>
|
||||
|
||||
CC Mode: Fix the fontification of a spuriously recognised enum member.
|
||||
CC Mode: Fix the fontification of a spuriously recognized enum member.
|
||||
|
||||
The "enum" was in an argument list, but triggered the fontification of a
|
||||
following identifier in the function block as though it were in an enum
|
||||
|
@ -26130,7 +26130,7 @@
|
|||
Partially correct fontification of "(b*3)", and the like, in C++ Mode
|
||||
|
||||
This problem is caused by the fundamental ambiguity in C++ between
|
||||
argument declarations and initialisation clauses.
|
||||
argument declarations and initialization clauses.
|
||||
|
||||
* lisp/progmodes/cc-fonts.el (c-font-lock-declarations): If we have an open
|
||||
paren preceded by an arithmetic operator, we give this the context nil, not
|
||||
|
@ -27358,7 +27358,7 @@
|
|||
|
||||
2016-12-13 Reuben Thomas <rrt@sc3d.org>
|
||||
|
||||
Generalise over-specific documentation
|
||||
Generalize over-specific documentation
|
||||
|
||||
* lisp/textmodes/ispell.el (ispell-personal-dictionary): Rather than
|
||||
document precise personal wordlist filenames for only two supported
|
||||
|
@ -32608,7 +32608,7 @@
|
|||
|
||||
Fix compatibility with macOS 10.12 pmset (bug#24537)
|
||||
|
||||
* lisp/battery.el (battery-pmset): Recognise and ignore battery id if
|
||||
* lisp/battery.el (battery-pmset): Recognize and ignore battery id if
|
||||
present in output.
|
||||
|
||||
2016-09-30 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
@ -33284,7 +33284,7 @@
|
|||
|
||||
2016-09-12 Michal Nazarewicz <mina86@mina86.com>
|
||||
|
||||
Fix compiler thinking width and height may be unitialised in frame.c
|
||||
Fix compiler thinking width and height may be unitialized in frame.c
|
||||
|
||||
This fixes the following warning:
|
||||
|
||||
|
@ -33300,7 +33300,7 @@
|
|||
|
||||
2016-09-12 Michal Nazarewicz <mina86@mina86.com>
|
||||
|
||||
Fix compiler thinking tmpdir may be unitialised in emacsclient
|
||||
Fix compiler thinking tmpdir may be unitialized in emacsclient
|
||||
|
||||
This fixes the following warning:
|
||||
|
||||
|
@ -34473,7 +34473,7 @@
|
|||
template declaration.
|
||||
(c-inside-bracelist-p): Call c-looking-at-or-maybe-in-bracelist in place of
|
||||
much inline code.
|
||||
(c-looking-at-inexpr-block): Amend so that it won't wrongly recognise an
|
||||
(c-looking-at-inexpr-block): Amend so that it won't wrongly recognize an
|
||||
initialization starting "({" as an in-expression block, by checking for
|
||||
semicolons, as opposed to commas, separating elements inside it.
|
||||
(c-guess-continued-construct): (CASE B-2): Recognize a brace-list-open by
|
||||
|
@ -35939,7 +35939,7 @@
|
|||
|
||||
* doc/misc/ses.texi (Printer functions): Split the node into 5
|
||||
sub-nodes + add some extra documentation.
|
||||
(Various kinds of printer functions): Make an itemisation to
|
||||
(Various kinds of printer functions): Make an itemization to
|
||||
disintguish better the 3 types of printers, give an example of
|
||||
lambda printer definition.
|
||||
(Standard printer functions): Add documentation for ses-prin1
|
||||
|
@ -36049,7 +36049,7 @@
|
|||
|
||||
Fix ‘[[:cc:]]*literal’ regex failing to match ‘literal’ (bug#24020)
|
||||
|
||||
The regex engine tries to optimise Kleene star by avoiding backtracking
|
||||
The regex engine tries to optimize Kleene star by avoiding backtracking
|
||||
when it can detect that star’s operand cannot match what follows it in
|
||||
the pattern.
|
||||
|
||||
|
@ -36063,7 +36063,7 @@
|
|||
engine knows whatever would be put back into the string cannot possibly
|
||||
match literal digit one so no backtracking will be attempted.
|
||||
|
||||
In the regexes of the form ‘[[:CC:]]*X’, the optimisation can be applied
|
||||
In the regexes of the form ‘[[:CC:]]*X’, the optimization can be applied
|
||||
if the character class CC does not match character X. In the above
|
||||
example, this holds because digit one is not in alpha character class.
|
||||
|
||||
|
@ -36072,7 +36072,7 @@
|
|||
that character classes do not match multibyte characters. For example,
|
||||
it would incorrectly conclude that [[:alpha:]] doesn’t match ‘ż’.
|
||||
|
||||
This, in turn, led to the aforementioned Kleene star optimisation being
|
||||
This, in turn, led to the aforementioned Kleene star optimization being
|
||||
incorrectly applied in patterns such as ‘[[:graph:]]*☠’ (which should
|
||||
match ‘☠’ but doesn’t as can be tested by executing
|
||||
(string-match-p "[[:graph:]]*☠" "☠")
|
||||
|
@ -44436,7 +44436,7 @@
|
|||
bd58c13 Improve documentation of focus-related hooks
|
||||
00a4720 Further improve doc string of 'disable-point-adjustment'
|
||||
c582def Further adaptions in file-notify-tests.el for w32notify
|
||||
a1585e1 Don't bug out on localised dates in gnus-icalendar
|
||||
a1585e1 Don't bug out on localized dates in gnus-icalendar
|
||||
|
||||
2016-03-03 John Wiegley <johnw@newartisans.com>
|
||||
|
||||
|
@ -44957,10 +44957,10 @@
|
|||
|
||||
2016-02-25 Jan Tatarik <jan.tatarik@gmail.com>
|
||||
|
||||
Don't use (localised) week days in dates
|
||||
Don't use (localized) week days in dates
|
||||
|
||||
* lisp/gnus/gnus-icalendar.el
|
||||
(gnus-icalendar-event:org-timestamp): Don't use (localised)
|
||||
(gnus-icalendar-event:org-timestamp): Don't use (localized)
|
||||
week days in the dates, because that messes up things later.
|
||||
|
||||
2016-02-25 Thierry Volpiatto <thierry.volpiatto@gmail.com>
|
||||
|
@ -47224,7 +47224,7 @@
|
|||
|
||||
2016-02-08 Michal Nazarewicz <mina86@mina86.com>
|
||||
|
||||
Optimise ‘point in message header’ check
|
||||
Optimize ‘point in message header’ check
|
||||
|
||||
* lisp/gnus/message.el (message-point-in-header-p): Replace two unbound
|
||||
regular expression matches with a single bound string match thus
|
||||
|
@ -48169,7 +48169,7 @@
|
|||
* src/gnutls.c (Fgnutls_mark_process): New function.
|
||||
|
||||
* src/process.c (send_process): Don't write to GnuTLS sockets that
|
||||
haven't been initialised yed.
|
||||
haven't been initialized yed.
|
||||
|
||||
* src/process.h: New slot gnutls_wait_p.
|
||||
|
||||
|
@ -48668,7 +48668,7 @@
|
|||
that as the same name can be used for different locations in different
|
||||
SES sheets ; 2) use `local-variable-if-set-p' rather than `boundp' and
|
||||
`local-variable-p' to check if cell name is already in use in this
|
||||
sheet or needs initialisation.
|
||||
sheet or needs initialization.
|
||||
(ses-relocate-all): Cell value relocation : 1) like for name
|
||||
relocation use the `ses-cell' property rather than comparing actual
|
||||
name to corresponding standard name. 2) Correct bug introduced in
|
||||
|
|
|
@ -3,19 +3,19 @@ Distribution Build Scripts for Windows
|
|||
|
||||
The scripts are used to build the binary distribution zip files for windows.
|
||||
|
||||
File System Organisation
|
||||
File System Organization
|
||||
------------------------
|
||||
|
||||
|
||||
They are relatively strict about the file system organisation. In
|
||||
They are relatively strict about the file system organization. In
|
||||
general, they should work across several more than just the version of
|
||||
Emacs they come with, as the dependencies of Emacs change relatively slowly.
|
||||
|
||||
The file system needs to be organised like so:
|
||||
The file system needs to be organized like so:
|
||||
|
||||
~/emacs-build/git
|
||||
|
||||
Contains a checkout of the Emacs git repository, organised according
|
||||
Contains a checkout of the Emacs git repository, organized according
|
||||
to branches, with git worktree
|
||||
|
||||
~/emacs-build/git/emacs-$branch
|
||||
|
|
|
@ -61,7 +61,7 @@ def extract_deps():
|
|||
mingw-w64-x86_64-lcms2'''.split()
|
||||
|
||||
# Get a list of all dependencies needed for packages mentioned above.
|
||||
# Run `pactree -lu' for each elment of $PKG_REQ
|
||||
# Run `pactree -lu' for each element of $PKG_REQ.
|
||||
pkgs = set()
|
||||
for x in PKG_REQ:
|
||||
pkgs.update(
|
||||
|
@ -125,7 +125,7 @@ def gather_source(deps):
|
|||
## mpc, termcap, xpm -- has x86_64, and i686 versions
|
||||
|
||||
## This needs to have been run first at the same time as the
|
||||
## system was udpated.
|
||||
## system was updated.
|
||||
os.mkdir("emacs-src")
|
||||
os.chdir("emacs-src")
|
||||
|
||||
|
|
20
build-aux/config.guess
vendored
20
build-aux/config.guess
vendored
|
@ -2,7 +2,7 @@
|
|||
# Attempt to guess a canonical system name.
|
||||
# Copyright 1992-2017 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2017-09-26'
|
||||
timestamp='2017-11-01'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
|
@ -479,13 +479,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||
#endif
|
||||
#if defined (host_mips) && defined (MIPSEB)
|
||||
#if defined (SYSTYPE_SYSV)
|
||||
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
|
||||
printf ("mips-mips-risco0s%ssysv\\n", argv[1]); exit (0);
|
||||
#endif
|
||||
#if defined (SYSTYPE_SVR4)
|
||||
printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
|
||||
printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
|
||||
#endif
|
||||
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
|
||||
printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
|
||||
printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
|
||||
#endif
|
||||
#endif
|
||||
exit (-1);
|
||||
|
@ -608,7 +608,7 @@ EOF
|
|||
*:AIX:*:*)
|
||||
echo rs6000-ibm-aix
|
||||
exit ;;
|
||||
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
|
||||
ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
|
||||
echo romp-ibm-bsd4.4
|
||||
exit ;;
|
||||
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
|
||||
|
@ -629,8 +629,8 @@ EOF
|
|||
9000/[34678]??:HP-UX:*:*)
|
||||
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
|
||||
case "${UNAME_MACHINE}" in
|
||||
9000/31? ) HP_ARCH=m68000 ;;
|
||||
9000/[34]?? ) HP_ARCH=m68k ;;
|
||||
9000/31?) HP_ARCH=m68000 ;;
|
||||
9000/[34]??) HP_ARCH=m68k ;;
|
||||
9000/[678][0-9][0-9])
|
||||
if [ -x /usr/bin/getconf ]; then
|
||||
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
|
||||
|
@ -743,7 +743,7 @@ EOF
|
|||
{ echo "$SYSTEM_NAME"; exit; }
|
||||
echo unknown-hitachi-hiuxwe2
|
||||
exit ;;
|
||||
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
|
||||
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
|
||||
echo hppa1.1-hp-bsd
|
||||
exit ;;
|
||||
9000/8??:4.3bsd:*:*)
|
||||
|
@ -752,7 +752,7 @@ EOF
|
|||
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
|
||||
echo hppa1.0-hp-mpeix
|
||||
exit ;;
|
||||
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
|
||||
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
|
||||
echo hppa1.1-hp-osf
|
||||
exit ;;
|
||||
hp8??:OSF1:*:*)
|
||||
|
@ -1072,7 +1072,7 @@ EOF
|
|||
i*86:*DOS:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-msdosdjgpp
|
||||
exit ;;
|
||||
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
|
||||
i*86:*:4.*:*)
|
||||
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
|
||||
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
|
||||
echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
|
||||
|
|
10
build-aux/config.sub
vendored
10
build-aux/config.sub
vendored
|
@ -2,7 +2,7 @@
|
|||
# Configuration validation subroutine script.
|
||||
# Copyright 1992-2017 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2017-09-26'
|
||||
timestamp='2017-11-01'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
|
@ -640,7 +640,7 @@ case $basic_machine in
|
|||
basic_machine=rs6000-bull
|
||||
os=-bosx
|
||||
;;
|
||||
dpx2* | dpx2*-bull)
|
||||
dpx2*)
|
||||
basic_machine=m68k-bull
|
||||
os=-sysv3
|
||||
;;
|
||||
|
@ -902,7 +902,7 @@ case $basic_machine in
|
|||
basic_machine=v70-nec
|
||||
os=-sysv
|
||||
;;
|
||||
next | m*-next )
|
||||
next | m*-next)
|
||||
basic_machine=m68k-next
|
||||
case $os in
|
||||
-nextstep* )
|
||||
|
@ -1492,7 +1492,7 @@ case $os in
|
|||
-nova*)
|
||||
os=-rtmk-nova
|
||||
;;
|
||||
-ns2 )
|
||||
-ns2)
|
||||
os=-nextstep2
|
||||
;;
|
||||
-nsk*)
|
||||
|
@ -1694,7 +1694,7 @@ case $basic_machine in
|
|||
m88k-omron*)
|
||||
os=-luna
|
||||
;;
|
||||
*-next )
|
||||
*-next)
|
||||
os=-nextstep
|
||||
;;
|
||||
*-sequent)
|
||||
|
|
|
@ -1210,6 +1210,13 @@ terminal supports colors, the parameters @code{foreground-color},
|
|||
@code{display-type} are also meaningful. If the terminal supports
|
||||
frame transparency, the parameter @code{alpha} is also meaningful.
|
||||
|
||||
By default, frame parameters are saved and restored by the desktop
|
||||
library functions (@pxref{Desktop Save Mode}) when the variable
|
||||
@code{desktop-restore-frames} is non-@code{nil}. It's the
|
||||
responsibility of applications that their parameters are included in
|
||||
@code{frameset-persistent-filter-alist} to avoid that they get
|
||||
meaningless or even harmful values in restored sessions.
|
||||
|
||||
@menu
|
||||
* Parameter Access:: How to change a frame's parameters.
|
||||
* Initial Parameters:: Specifying frame parameters when you make a frame.
|
||||
|
|
|
@ -668,7 +668,7 @@ close_emacs_globals (ptrdiff_t num_symbols)
|
|||
"extern\n"
|
||||
"#endif\n"
|
||||
"struct {\n"
|
||||
" struct Lisp_Symbol alignas (GCALIGNMENT) s;\n"
|
||||
" struct Lisp_Symbol GCALIGNED s;\n"
|
||||
"} lispsym[%td];\n"),
|
||||
num_symbols);
|
||||
}
|
||||
|
|
|
@ -33,6 +33,8 @@ _GL_INLINE_HEADER_BEGIN
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "verify.h"
|
||||
|
||||
/* Resolution of timespec timestamps (in units per second), and log
|
||||
base 10 of the resolution. */
|
||||
|
||||
|
@ -67,23 +69,29 @@ make_timespec (time_t s, long int ns)
|
|||
any platform of interest to the GNU project, since all such
|
||||
platforms have 32-bit int or wider.
|
||||
|
||||
Replacing "(int) (a.tv_nsec - b.tv_nsec)" with something like
|
||||
Replacing "a.tv_nsec - b.tv_nsec" with something like
|
||||
"a.tv_nsec < b.tv_nsec ? -1 : a.tv_nsec > b.tv_nsec" would cause
|
||||
this function to work in some cases where the above assumption is
|
||||
violated, but not in all cases (e.g., a.tv_sec==1, a.tv_nsec==-2,
|
||||
b.tv_sec==0, b.tv_nsec==999999999) and is arguably not worth the
|
||||
extra instructions. Using a subtraction has the advantage of
|
||||
detecting some invalid cases on platforms that detect integer
|
||||
overflow.
|
||||
|
||||
The (int) cast avoids a gcc -Wconversion warning. */
|
||||
overflow. */
|
||||
|
||||
_GL_TIMESPEC_INLINE int _GL_ATTRIBUTE_PURE
|
||||
timespec_cmp (struct timespec a, struct timespec b)
|
||||
{
|
||||
return (a.tv_sec < b.tv_sec ? -1
|
||||
: a.tv_sec > b.tv_sec ? 1
|
||||
: (int) (a.tv_nsec - b.tv_nsec));
|
||||
if (a.tv_sec < b.tv_sec)
|
||||
return -1;
|
||||
if (a.tv_sec > b.tv_sec)
|
||||
return 1;
|
||||
|
||||
/* Pacify gcc -Wstrict-overflow (bleeding-edge circa 2017-10-02). See:
|
||||
http://lists.gnu.org/archive/html/bug-gnulib/2017-10/msg00006.html */
|
||||
assume (-1 <= a.tv_nsec && a.tv_nsec <= 2 * TIMESPEC_RESOLUTION);
|
||||
assume (-1 <= b.tv_nsec && b.tv_nsec <= 2 * TIMESPEC_RESOLUTION);
|
||||
|
||||
return a.tv_nsec - b.tv_nsec;
|
||||
}
|
||||
|
||||
/* Return -1, 0, 1, depending on the sign of A. A.tv_nsec must be
|
||||
|
|
|
@ -134,9 +134,8 @@
|
|||
/* The definition of _GL_WARN_ON_USE is copied here. */
|
||||
|
||||
|
||||
/* Get getopt(), optarg, optind, opterr, optopt.
|
||||
But avoid namespace pollution on glibc systems. */
|
||||
#if @GNULIB_UNISTD_H_GETOPT@ && !defined __GLIBC__ && !defined _GL_SYSTEM_GETOPT
|
||||
/* Get getopt(), optarg, optind, opterr, optopt. */
|
||||
#if @GNULIB_UNISTD_H_GETOPT@ && !defined _GL_SYSTEM_GETOPT
|
||||
# include <getopt-cdefs.h>
|
||||
# include <getopt-pfx-core.h>
|
||||
#endif
|
||||
|
|
|
@ -23666,7 +23666,7 @@
|
|||
|
||||
2013-05-28 Alan Mackenzie <acm@muc.de>
|
||||
|
||||
Handle "capitalised keywords" correctly.
|
||||
Handle "capitalized keywords" correctly.
|
||||
* progmodes/cc-mode.el (c-after-change): Bind case-fold-search to nil.
|
||||
|
||||
2013-05-28 Aidan Gauland <aidalgol@amuri.net>
|
||||
|
|
|
@ -2033,7 +2033,7 @@
|
|||
(uniquify-get-proposed-name): Arguments changed, callers changed.
|
||||
(uniquify-rationalize-conflicting-sublist): Explicitly reset the
|
||||
uniquify-possibly-resolvable flag, which is no more bound locally.
|
||||
(uniquify-rename-buffer): Do not set the old unrationalised-buffer
|
||||
(uniquify-rename-buffer): Do not set the old unrationalized-buffer
|
||||
flag, which does not exist any more.
|
||||
|
||||
2001-07-23 Eli Zaretskii <eliz@is.elta.co.il>
|
||||
|
|
|
@ -206,7 +206,8 @@ DEFAULT-BODY, if present, is used as the body of a default method.
|
|||
\(fn NAME ARGS [DOC-STRING] [OPTIONS-AND-METHODS...] &rest DEFAULT-BODY)"
|
||||
(declare (indent 2) (doc-string 3)
|
||||
(debug
|
||||
(&define name cl-lambda-list lambda-doc
|
||||
(&define [&or name ("setf" name :name setf)] listp
|
||||
lambda-doc
|
||||
[&rest [&or
|
||||
("declare" &rest sexp)
|
||||
(":argument-precedence-order" &rest sexp)
|
||||
|
|
|
@ -51,8 +51,9 @@ the middle is discarded, and just the beginning and end are displayed."
|
|||
|
||||
(defcustom debugger-print-function #'cl-prin1
|
||||
"Function used to print values in the debugger backtraces."
|
||||
:type 'function
|
||||
:options '(cl-prin1 prin1)
|
||||
:type '(choice (const cl-prin1)
|
||||
(const prin1)
|
||||
function)
|
||||
:version "26.1")
|
||||
|
||||
(defcustom debugger-bury-or-kill 'bury
|
||||
|
|
|
@ -136,75 +136,70 @@ to writing a completion function."
|
|||
:type '(repeat (cons string regexp))
|
||||
:group 'eshell-cmpl)
|
||||
|
||||
(defun eshell-cmpl--custom-variable-docstring (pcomplete-var)
|
||||
"Generate the docstring of a variable derived from a pcomplete-* variable."
|
||||
(format "%s\n\nIts value is assigned to `%s' locally after eshell starts."
|
||||
(documentation-property pcomplete-var
|
||||
'variable-documentation t)
|
||||
(symbol-name pcomplete-var)))
|
||||
|
||||
(defcustom eshell-cmpl-file-ignore "~\\'"
|
||||
(documentation-property 'pcomplete-file-ignore
|
||||
'variable-documentation)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-file-ignore)
|
||||
:type (get 'pcomplete-file-ignore 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
|
||||
(defcustom eshell-cmpl-dir-ignore "\\`\\(\\.\\.?\\|CVS\\)/\\'"
|
||||
(documentation-property 'pcomplete-dir-ignore
|
||||
'variable-documentation)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-dir-ignore)
|
||||
:type (get 'pcomplete-dir-ignore 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
|
||||
(defcustom eshell-cmpl-ignore-case (eshell-under-windows-p)
|
||||
(documentation-property 'pcomplete-ignore-case
|
||||
'variable-documentation)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-ignore-case)
|
||||
:type (get 'pcomplete-ignore-case 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
|
||||
(defcustom eshell-cmpl-autolist nil
|
||||
(documentation-property 'pcomplete-autolist
|
||||
'variable-documentation)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-autolist)
|
||||
:type (get 'pcomplete-autolist 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
|
||||
(defcustom eshell-cmpl-suffix-list (list ?/ ?:)
|
||||
(documentation-property 'pcomplete-suffix-list
|
||||
'variable-documentation)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-suffix-list)
|
||||
:type (get 'pcomplete-suffix-list 'custom-type)
|
||||
:group 'pcomplete)
|
||||
|
||||
(defcustom eshell-cmpl-recexact nil
|
||||
(documentation-property 'pcomplete-recexact
|
||||
'variable-documentation)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-recexact)
|
||||
:type (get 'pcomplete-recexact 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
|
||||
(defcustom eshell-cmpl-man-function 'man
|
||||
(documentation-property 'pcomplete-man-function
|
||||
'variable-documentation)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-man-function)
|
||||
:type (get 'pcomplete-man-function 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
|
||||
(defcustom eshell-cmpl-compare-entry-function 'file-newer-than-file-p
|
||||
(documentation-property 'pcomplete-compare-entry-function
|
||||
'variable-documentation)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-compare-entry-function)
|
||||
:type (get 'pcomplete-compare-entry-function 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
|
||||
(defcustom eshell-cmpl-expand-before-complete nil
|
||||
(documentation-property 'pcomplete-expand-before-complete
|
||||
'variable-documentation)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-expand-before-complete)
|
||||
:type (get 'pcomplete-expand-before-complete 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
|
||||
(defcustom eshell-cmpl-cycle-completions t
|
||||
(documentation-property 'pcomplete-cycle-completions
|
||||
'variable-documentation)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-cycle-completions)
|
||||
:type (get 'pcomplete-cycle-completions 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
|
||||
(defcustom eshell-cmpl-cycle-cutoff-length 5
|
||||
(documentation-property 'pcomplete-cycle-cutoff-length
|
||||
'variable-documentation)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-cycle-cutoff-length)
|
||||
:type (get 'pcomplete-cycle-cutoff-length 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
|
||||
(defcustom eshell-cmpl-restore-window-delay 1
|
||||
(documentation-property 'pcomplete-restore-window-delay
|
||||
'variable-documentation)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-restore-window-delay)
|
||||
:type (get 'pcomplete-restore-window-delay 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
|
||||
|
@ -212,15 +207,13 @@ to writing a completion function."
|
|||
(function
|
||||
(lambda ()
|
||||
(pcomplete-here (eshell-complete-commands-list))))
|
||||
(documentation-property 'pcomplete-command-completion-function
|
||||
'variable-documentation)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-command-completion-function)
|
||||
:type (get 'pcomplete-command-completion-function 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
|
||||
(defcustom eshell-cmpl-command-name-function
|
||||
'eshell-completion-command-name
|
||||
(documentation-property 'pcomplete-command-name-function
|
||||
'variable-documentation)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-command-name-function)
|
||||
:type (get 'pcomplete-command-name-function 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
|
||||
|
@ -231,13 +224,12 @@ to writing a completion function."
|
|||
(pcomplete-dirs-or-entries
|
||||
(cdr (assoc (funcall eshell-cmpl-command-name-function)
|
||||
eshell-command-completions-alist)))))))
|
||||
(documentation-property 'pcomplete-default-completion-function
|
||||
'variable-documentation)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-default-completion-function)
|
||||
:type (get 'pcomplete-default-completion-function 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
|
||||
(defcustom eshell-cmpl-use-paring t
|
||||
(documentation-property 'pcomplete-use-paring 'variable-documentation)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-use-paring)
|
||||
:type (get 'pcomplete-use-paring 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
|
||||
|
|
|
@ -446,6 +446,10 @@ DO NOT MODIFY. See `frameset-filter-alist' for a full description.")
|
|||
(buffer-list . :never)
|
||||
(buffer-predicate . :never)
|
||||
(buried-buffer-list . :never)
|
||||
;; Don't save the 'client' parameter to avoid that a subsequent
|
||||
;; `save-buffers-kill-terminal' in a non-client session barks at
|
||||
;; the user (Bug#29067).
|
||||
(client . :never)
|
||||
(delete-before . :never)
|
||||
(font . frameset-filter-font-param)
|
||||
(foreground-color . frameset-filter-sanitize-color)
|
||||
|
|
|
@ -527,8 +527,10 @@ Creates the directory if necessary and makes sure:
|
|||
(w32 (eq system-type 'windows-nt))
|
||||
(unsafe (cond
|
||||
((not (eq t (car attrs)))
|
||||
(format "it is a %s" (if (stringp (car attrs))
|
||||
"symlink" "file")))
|
||||
(if (null attrs) "its attributes can't be checked"
|
||||
(format "it is a %s"
|
||||
(if (stringp (car attrs))
|
||||
"symlink" "file"))))
|
||||
((and w32 (zerop uid)) ; on FAT32?
|
||||
(display-warning
|
||||
'server
|
||||
|
|
|
@ -1375,6 +1375,7 @@ tags, classes and IDs."
|
|||
:exit-function
|
||||
,(lambda (string status)
|
||||
(and (eq status 'finished)
|
||||
(eolp)
|
||||
prop-table
|
||||
(test-completion string prop-table)
|
||||
(not (and sel-table
|
||||
|
|
|
@ -39,7 +39,7 @@ They must also be covered by `url-handler-regexp'."
|
|||
(defun url-tramp-convert-url-to-tramp (url)
|
||||
"Convert URL to a Tramp file name.
|
||||
If URL contains a password, it will be added to the `password-data' cache.
|
||||
In case URL is not convertable, nil is returned."
|
||||
In case URL is not convertible, nil is returned."
|
||||
(let* ((obj (url-generic-parse-url (and (stringp url) url)))
|
||||
(port
|
||||
(and (natnump (url-portspec obj))
|
||||
|
@ -57,7 +57,7 @@ In case URL is not convertable, nil is returned."
|
|||
|
||||
(defun url-tramp-convert-tramp-to-url (file)
|
||||
"Convert FILE, a Tramp file name, to a URL.
|
||||
In case FILE is not convertable, nil is returned."
|
||||
In case FILE is not convertible, nil is returned."
|
||||
(let* ((obj (ignore-errors (tramp-dissect-file-name file)))
|
||||
(port
|
||||
(and (stringp (tramp-file-name-port obj))
|
||||
|
|
|
@ -16581,7 +16581,7 @@
|
|||
(characterIndexForPoint:): Adjust return type depending on GNUstep
|
||||
version.
|
||||
(mouseDown:): delta is CGFloat.
|
||||
(updateFrameSize): Remove unised variable f.
|
||||
(updateFrameSize): Remove unused variable f.
|
||||
(initFrameFromEmacs): Move toggleButton inside NS_IMPL_COCOA.
|
||||
Cast float to EmacsCGFloat.
|
||||
(windowWillUseStandardFrame:defaultFrame:): Set maximized_height
|
||||
|
@ -16593,7 +16593,7 @@
|
|||
(setPosition:portion:whole:): por is CGFloat.
|
||||
(getMouseMotionPart:window:x:y:): Add F suffix to float.
|
||||
(mouseDown:): Use CGFloat.
|
||||
(mouseDragged:): Remove unised variable edge.
|
||||
(mouseDragged:): Remove unused variable edge.
|
||||
(EmacsDocument): Implement for NS_IMPL_GNUSTEP.
|
||||
|
||||
* nsterm.h (EmacsCGFloat): Typedef for OSX and GNUstep when the size
|
||||
|
|
20
src/alloc.c
20
src/alloc.c
|
@ -621,6 +621,12 @@ buffer_memory_full (ptrdiff_t nbytes)
|
|||
#endif
|
||||
}
|
||||
|
||||
/* A common multiple of the positive integers A and B. Ideally this
|
||||
would be the least common multiple, but there's no way to do that
|
||||
as a constant expression in C, so do the best that we can easily do. */
|
||||
#define COMMON_MULTIPLE(a, b) \
|
||||
((a) % (b) == 0 ? (a) : (b) % (a) == 0 ? (b) : (a) * (b))
|
||||
|
||||
#ifndef XMALLOC_OVERRUN_CHECK
|
||||
#define XMALLOC_OVERRUN_CHECK_OVERHEAD 0
|
||||
#else
|
||||
|
@ -7024,10 +7030,16 @@ sweep_symbols (void)
|
|||
{
|
||||
if (!sym->s.gcmarkbit)
|
||||
{
|
||||
if (sym->s.redirect == SYMBOL_LOCALIZED
|
||||
/* Already freed? */
|
||||
&& !EQ (sym->s.function, Vdead))
|
||||
xfree (SYMBOL_BLV (&sym->s));
|
||||
if (sym->s.redirect == SYMBOL_LOCALIZED)
|
||||
{
|
||||
xfree (SYMBOL_BLV (&sym->s));
|
||||
/* At every GC we sweep all symbol_blocks and rebuild the
|
||||
symbol_free_list, so those symbols which stayed unused
|
||||
between the two will be re-swept.
|
||||
So we have to make sure we don't re-free this blv next
|
||||
time we sweep this symbol_block (bug#29066). */
|
||||
sym->s.redirect = SYMBOL_PLAINVAL;
|
||||
}
|
||||
sym->s.next = symbol_free_list;
|
||||
symbol_free_list = &sym->s;
|
||||
symbol_free_list->function = Vdead;
|
||||
|
|
|
@ -61,7 +61,7 @@ struct buffer *all_buffers;
|
|||
Setting the default value also goes through the alist of buffers
|
||||
and stores into each buffer that does not say it has a local value. */
|
||||
|
||||
struct buffer alignas (GCALIGNMENT) buffer_defaults;
|
||||
struct buffer GCALIGNED buffer_defaults;
|
||||
|
||||
/* This structure marks which slots in a buffer have corresponding
|
||||
default values in buffer_defaults.
|
||||
|
@ -84,7 +84,7 @@ struct buffer buffer_local_flags;
|
|||
/* This structure holds the names of symbols whose values may be
|
||||
buffer-local. It is indexed and accessed in the same way as the above. */
|
||||
|
||||
struct buffer alignas (GCALIGNMENT) buffer_local_symbols;
|
||||
struct buffer GCALIGNED buffer_local_symbols;
|
||||
|
||||
/* Return the symbol of the per-buffer variable at offset OFFSET in
|
||||
the buffer structure. */
|
||||
|
|
|
@ -953,7 +953,14 @@ file_attributes (int fd, char const *name,
|
|||
{
|
||||
record_unwind_protect_int (close_file_unwind, namefd);
|
||||
if (fstat (namefd, &s) != 0)
|
||||
err = errno;
|
||||
{
|
||||
err = errno;
|
||||
/* The Linux kernel before version 3.6 does not support
|
||||
fstat on O_PATH file descriptors. Handle this error like
|
||||
missing support for O_PATH. */
|
||||
if (err == EBADF)
|
||||
err = EINVAL;
|
||||
}
|
||||
else
|
||||
{
|
||||
err = 0;
|
||||
|
|
26
src/lisp.h
26
src/lisp.h
|
@ -228,14 +228,12 @@ extern bool suppress_checking EXTERNALLY_VISIBLE;
|
|||
|
||||
USE_LSB_TAG not only requires the least 3 bits of pointers returned by
|
||||
malloc to be 0 but also needs to be able to impose a mult-of-8 alignment
|
||||
on the few static Lisp_Objects used: lispsym, all the defsubr, and
|
||||
the two special buffers buffer_defaults and buffer_local_symbols. */
|
||||
on the few static Lisp_Objects used, all of which are aligned via
|
||||
the GCALIGN macro defined below. */
|
||||
|
||||
enum Lisp_Bits
|
||||
{
|
||||
/* 2**GCTYPEBITS. This must be a macro that expands to a literal
|
||||
integer constant, for MSVC. */
|
||||
#define GCALIGNMENT 8
|
||||
GCALIGNMENT = 1 << GCTYPEBITS,
|
||||
|
||||
/* Number of bits in a Lisp_Object value, not counting the tag. */
|
||||
VALBITS = EMACS_INT_WIDTH - GCTYPEBITS,
|
||||
|
@ -247,10 +245,6 @@ enum Lisp_Bits
|
|||
FIXNUM_BITS = VALBITS + 1
|
||||
};
|
||||
|
||||
#if GCALIGNMENT != 1 << GCTYPEBITS
|
||||
# error "GCALIGNMENT and GCTYPEBITS are inconsistent"
|
||||
#endif
|
||||
|
||||
/* The maximum value that can be stored in a EMACS_INT, assuming all
|
||||
bits other than the type bits contribute to a nonnegative signed value.
|
||||
This can be used in #if, e.g., '#if USE_LSB_TAG' below expands to an
|
||||
|
@ -277,18 +271,16 @@ DEFINE_GDB_SYMBOL_END (VALMASK)
|
|||
error !;
|
||||
#endif
|
||||
|
||||
/* Declare an object to have an address that is a multiple of
|
||||
GCALIGNMENT. This is a no-op if the object's natural alignment is
|
||||
already a multiple of GCALIGNMENT. alignas is not suitable here,
|
||||
as it fails if the object's natural alignment exceeds GCALIGNMENT. */
|
||||
#ifdef HAVE_STRUCT_ATTRIBUTE_ALIGNED
|
||||
# define GCALIGNED __attribute__ ((aligned (GCALIGNMENT)))
|
||||
#else
|
||||
# define GCALIGNED /* empty */
|
||||
#endif
|
||||
|
||||
/* A common multiple of the positive integers A and B. Ideally this
|
||||
would be the least common multiple, but there's no way to do that
|
||||
as a constant expression in C, so do the best that we can easily do. */
|
||||
#define COMMON_MULTIPLE(a, b) \
|
||||
((a) % (b) == 0 ? (a) : (b) % (a) == 0 ? (b) : (a) * (b))
|
||||
|
||||
/* Some operations are so commonly executed that they are implemented
|
||||
as macros, not functions, because otherwise runtime performance would
|
||||
suffer too much when compiling with GCC without optimization.
|
||||
|
@ -2946,7 +2938,7 @@ CHECK_NUMBER_CDR (Lisp_Object x)
|
|||
#ifdef _MSC_VER
|
||||
#define DEFUN(lname, fnname, sname, minargs, maxargs, intspec, doc) \
|
||||
Lisp_Object fnname DEFUN_ARGS_ ## maxargs ; \
|
||||
static struct Lisp_Subr alignas (GCALIGNMENT) sname = \
|
||||
static struct Lisp_Subr GCALIGNED sname = \
|
||||
{ { (PVEC_SUBR << PSEUDOVECTOR_AREA_BITS) \
|
||||
| (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)) }, \
|
||||
{ (Lisp_Object (__cdecl *)(void))fnname }, \
|
||||
|
@ -2954,7 +2946,7 @@ CHECK_NUMBER_CDR (Lisp_Object x)
|
|||
Lisp_Object fnname
|
||||
#else /* not _MSC_VER */
|
||||
#define DEFUN(lname, fnname, sname, minargs, maxargs, intspec, doc) \
|
||||
static struct Lisp_Subr alignas (GCALIGNMENT) sname = \
|
||||
static struct Lisp_Subr GCALIGNED sname = \
|
||||
{ { PVEC_SUBR << PSEUDOVECTOR_AREA_BITS }, \
|
||||
{ .a ## maxargs = fnname }, \
|
||||
minargs, maxargs, lname, intspec, 0}; \
|
||||
|
|
21
src/nsterm.m
21
src/nsterm.m
|
@ -8912,10 +8912,20 @@ - (void)mouseDown: (NSEvent *)e
|
|||
}
|
||||
last_mouse_offset = kloc;
|
||||
|
||||
if (part != NSScrollerKnob)
|
||||
/* this is a slot click on GNUstep: go straight there */
|
||||
/* if knob, tell emacs a location offset by knob pos
|
||||
(to indicate top of handle) */
|
||||
if (part == NSScrollerKnob)
|
||||
pos = (loc - last_mouse_offset);
|
||||
else
|
||||
/* else this is a slot click on GNUstep: go straight there */
|
||||
pos = loc;
|
||||
|
||||
/* If there are buttons in the scroller area, we need to
|
||||
recalculate pos as emacs expects the scroller slot to take up
|
||||
the entire available length. */
|
||||
if (length != pixel_length)
|
||||
pos = pos * pixel_length / length;
|
||||
|
||||
/* send a fake mouse-up to super to preempt modal -trackKnob: mode */
|
||||
fake_event = [NSEvent mouseEventWithType: NSEventTypeLeftMouseUp
|
||||
location: [e locationInWindow]
|
||||
|
@ -8980,6 +8990,13 @@ - (void)mouseDragged: (NSEvent *)e
|
|||
}
|
||||
|
||||
pos = (loc - last_mouse_offset);
|
||||
|
||||
/* If there are buttons in the scroller area, we need to
|
||||
recalculate pos as emacs expects the scroller slot to take up
|
||||
the entire available length. */
|
||||
if (length != pixel_length)
|
||||
pos = pos * pixel_length / length;
|
||||
|
||||
[self sendScrollEventAtLoc: pos fromEvent: e];
|
||||
}
|
||||
|
||||
|
|
|
@ -26,9 +26,7 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
|
|||
#include "coding.h"
|
||||
#include "syssignal.h"
|
||||
|
||||
#define THREAD_ALIGNMENT COMMON_MULTIPLE (alignof (max_align_t), GCALIGNMENT)
|
||||
|
||||
static struct thread_state alignas (THREAD_ALIGNMENT) main_thread;
|
||||
static struct thread_state GCALIGNED main_thread;
|
||||
|
||||
struct thread_state *current_thread = &main_thread;
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ <H5 ID="fracas">
|
|||
protocol studies:
|
||||
<UL>
|
||||
<LI> <A HREF="/curriculum/pot-abstracts.html#R03:FODAIBEAvsDistributed-IJSC96">
|
||||
<i>Comparison between distributed and centralised demand
|
||||
<i>Comparison between distributed and centralized demand
|
||||
assignment TDMA satellite access schemes</i></A>
|
||||
|
||||
<LI><A HREF="/curriculum/pot-abstracts.html#R07:FODAIBEAvsCFRA-IJSC97">
|
||||
|
@ -225,7 +225,7 @@ <H4 ID="links">
|
|||
decoding. I keep a <A HREF="codes.html">mirror</A> of this page.
|
||||
|
||||
<DT>Forward error correcting codes by Phil Karn
|
||||
<DD>Phil Karn's optimised really <A HREF="http://www.ka9q.net/code/fec/">free
|
||||
<DD>Phil Karn's optimized really <A HREF="http://www.ka9q.net/code/fec/">free
|
||||
codes</A>.
|
||||
|
||||
</DL>
|
||||
|
|
Loading…
Add table
Reference in a new issue