avoid crashing in Gnus Browse Server mode #8
39
.travis.yml
39
.travis.yml
|
@ -1,12 +1,19 @@
|
||||||
sudo: false
|
sudo: false
|
||||||
language: python
|
language: nix
|
||||||
dist: trusty
|
|
||||||
|
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
packages:
|
packages:
|
||||||
- gnutls-bin
|
- gnutls-bin
|
||||||
- sharutils
|
- sharutils
|
||||||
|
- gnupg2
|
||||||
|
- python-minimal
|
||||||
|
- python-setuptools
|
||||||
|
- python-pip
|
||||||
|
- python3-minimal
|
||||||
|
- python3-pip
|
||||||
|
- python3-setuptools
|
||||||
|
- dirmngr
|
||||||
- libxml2-dev
|
- libxml2-dev
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
|
@ -26,37 +33,19 @@ env:
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
allow_failures:
|
allow_failures:
|
||||||
- env: EVM_EMACS=emacs-git-snapshot-travis
|
- env: EMACS_CI=emacs-snapshot
|
||||||
include:
|
include:
|
||||||
- os: linux
|
- os: linux
|
||||||
env: EVM_EMACS=emacs-25.1
|
env: EMACS_CI=emacs-25-1 PY=python PIP="${PY} -m pip install --user"
|
||||||
- os: linux
|
- os: linux
|
||||||
env: EVM_EMACS=emacs-26.2
|
env: EMACS_CI=emacs-26-2 PY=python3 PIP="${PY} -m pip install --user"
|
||||||
- os: osx
|
- os: osx
|
||||||
language: generic
|
env: EMACS_CI=emacs-26-3 PY=python PIP="pip install" TOXENV=py27
|
||||||
env: EVM_EMACS=emacs-25.2 TOXENV=py27
|
|
||||||
|
|
||||||
install:
|
|
||||||
- cp -pr $HOME/.cask .
|
|
||||||
- sh tools/install-virtualenv.sh
|
|
||||||
- |
|
|
||||||
if [ "x$TRAVIS_OS_NAME" = "xosx" ]; then
|
|
||||||
eval "$(pyenv init -)"
|
|
||||||
pyenv activate $TOXENV
|
|
||||||
fi
|
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- sh tools/install-evm.sh
|
- bash <(curl https://raw.githubusercontent.com/purcell/nix-emacs-ci/master/travis-install)
|
||||||
- |
|
|
||||||
if [ "x$TRAVIS_OS_NAME" = "xosx" ]; then
|
|
||||||
evm config path $HOME/.evm
|
|
||||||
else
|
|
||||||
evm config path /tmp
|
|
||||||
fi
|
|
||||||
- evm install $EVM_EMACS --use --skip
|
|
||||||
- emacs --version
|
- emacs --version
|
||||||
- sh tools/install-cask.sh
|
- sh tools/install-cask.sh
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- make test-install
|
|
||||||
- make test || ( ( printf "To diagnose, travis logs -i | dos2unix | sed '/^begin 644/,/^end/!d' | uudecode\n" ) && ( zip -q - tests/log/* 2>/dev/null | uuencode log.zip ) && false)
|
- make test || ( ( printf "To diagnose, travis logs -i | dos2unix | sed '/^begin 644/,/^end/!d' | uudecode\n" ) && ( zip -q - tests/log/* 2>/dev/null | uuencode log.zip ) && false)
|
||||||
|
|
|
@ -461,7 +461,7 @@ If GROUP classification omitted, figure it out."
|
||||||
|
|
||||||
(deffoo nnhackernews-server-opened (&optional server)
|
(deffoo nnhackernews-server-opened (&optional server)
|
||||||
(nnhackernews--normalize-server)
|
(nnhackernews--normalize-server)
|
||||||
t)
|
nnhackernews--last-item)
|
||||||
|
|
||||||
(deffoo nnhackernews-status-message (&optional server)
|
(deffoo nnhackernews-status-message (&optional server)
|
||||||
(nnhackernews--normalize-server)
|
(nnhackernews--normalize-server)
|
||||||
|
@ -695,7 +695,9 @@ The two hashtables being reconciled are `nnhackernews-location-hashtb' and
|
||||||
(gnus-info-set-marks
|
(gnus-info-set-marks
|
||||||
info
|
info
|
||||||
(append (assq-delete-all 'seen (gnus-info-marks info))
|
(append (assq-delete-all 'seen (gnus-info-marks info))
|
||||||
(list `(seen (1 . ,num-headers)))))
|
(list `(seen (1 . ,num-headers))))
|
||||||
|
t)
|
||||||
|
(gnus-info-set-method info (gnus-group-method gnus-newsgroup-name) t)
|
||||||
(gnus-set-info gnus-newsgroup-name info)))
|
(gnus-set-info gnus-newsgroup-name info)))
|
||||||
t))
|
t))
|
||||||
|
|
||||||
|
@ -1142,7 +1144,7 @@ Optionally provide STATIC-MAX-ITEM and STATIC-NEWSTORIES to prevent querying out
|
||||||
(nnheader-insert-nov (nnhackernews--make-header i group)))
|
(nnheader-insert-nov (nnhackernews--make-header i group)))
|
||||||
'nov)))
|
'nov)))
|
||||||
|
|
||||||
(deffoo nnhackernews-close-server (&optional server)
|
(deffoo nnhackernews-close-server (&optional server _defs)
|
||||||
(nnhackernews--normalize-server)
|
(nnhackernews--normalize-server)
|
||||||
t)
|
t)
|
||||||
|
|
||||||
|
@ -1163,6 +1165,18 @@ Optionally provide STATIC-MAX-ITEM and STATIC-NEWSTORIES to prevent querying out
|
||||||
,nnhackernews--group-stories)))
|
,nnhackernews--group-stories)))
|
||||||
t)
|
t)
|
||||||
|
|
||||||
|
(deffoo nnhackernews-request-newgroups (_date &optional server)
|
||||||
|
(nnhackernews--normalize-server)
|
||||||
|
(with-current-buffer nntp-server-buffer
|
||||||
|
(erase-buffer)
|
||||||
|
(mapc (lambda (group)
|
||||||
|
(insert (format "%S 0 1 y\n" group)))
|
||||||
|
`(,nnhackernews--group-ask
|
||||||
|
,nnhackernews--group-show
|
||||||
|
,nnhackernews--group-job
|
||||||
|
,nnhackernews--group-stories))
|
||||||
|
t))
|
||||||
|
|
||||||
(defun nnhackernews-sentinel (process event)
|
(defun nnhackernews-sentinel (process event)
|
||||||
"Wipe headers state when PROCESS dies from EVENT."
|
"Wipe headers state when PROCESS dies from EVENT."
|
||||||
(unless (string= "open" (substring event 0 4))
|
(unless (string= "open" (substring event 0 4))
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/sh -e
|
#!/bin/sh -ex
|
||||||
|
|
||||||
# The following is a derivative work of
|
# The following is a derivative work of
|
||||||
# https://github.com/purcell/package-lint
|
# https://github.com/purcell/package-lint
|
||||||
|
@ -9,25 +9,27 @@ EMACS="${EMACS:=emacs}"
|
||||||
INIT_PACKAGE_EL="(progn
|
INIT_PACKAGE_EL="(progn
|
||||||
(require 'package)
|
(require 'package)
|
||||||
(push '(\"melpa\" . \"http://melpa.org/packages/\") package-archives)
|
(push '(\"melpa\" . \"http://melpa.org/packages/\") package-archives)
|
||||||
(package-initialize))"
|
(package-initialize)
|
||||||
|
(package-refresh-contents))"
|
||||||
|
|
||||||
|
# rm -rf "$HOME"/.emacs.d/elpa/package-lint-*
|
||||||
|
|
||||||
|
# Get mainline package-lint, then replace package-lint.el with dickmao's.
|
||||||
|
# quelpa doesn't get data/stdlib-changes.gz for whatever reason.
|
||||||
|
( cd /tmp ; curl -OskL https://raw.githubusercontent.com/dickmao/package-lint/datetime/package-lint.el )
|
||||||
"$EMACS" -Q -batch \
|
"$EMACS" -Q -batch \
|
||||||
--eval "$INIT_PACKAGE_EL" \
|
--eval "$INIT_PACKAGE_EL" \
|
||||||
--eval "(unless (package-installed-p (quote quelpa)) (package-refresh-contents) (package-install (quote quelpa)))" \
|
--eval "(package-install (quote package-lint))" \
|
||||||
--eval "(unless (package-installed-p (quote package-lint)) (quelpa (quote (package-lint :fetcher github :repo \"dickmao/package-lint\" :branch \"datetime\"))))"
|
--eval "(let ((dir (file-name-directory (locate-library \"package-lint\")))) \
|
||||||
|
(ignore-errors (delete-file (expand-file-name \"package-lint.elc\" dir))) \
|
||||||
|
(copy-file (expand-file-name \"package-lint.el\" \
|
||||||
|
\"/tmp\") (expand-file-name \"package-lint.el\" dir) t))"
|
||||||
|
|
||||||
# Byte compile, failing on byte compiler errors, or on warnings unless ignored
|
BASENAME=$(basename "$1")
|
||||||
if [ -n "${EMACS_LINT_IGNORE+x}" ]; then
|
|
||||||
ERROR_ON_WARN=nil
|
|
||||||
else
|
|
||||||
ERROR_ON_WARN=t
|
|
||||||
fi
|
|
||||||
|
|
||||||
BASENAME=$(basename $1)
|
|
||||||
"$EMACS" -Q -batch \
|
"$EMACS" -Q -batch \
|
||||||
--eval "$INIT_PACKAGE_EL" \
|
--eval "$INIT_PACKAGE_EL" \
|
||||||
-l package-lint.el \
|
-l package-lint.el \
|
||||||
--visit $1 \
|
--visit "$1" \
|
||||||
--eval "(checkdoc-eval-current-buffer)" \
|
--eval "(checkdoc-eval-current-buffer)" \
|
||||||
--eval "(princ (with-current-buffer checkdoc-diagnostic-buffer (buffer-string)))" \
|
--eval "(princ (with-current-buffer checkdoc-diagnostic-buffer (buffer-string)))" \
|
||||||
2>&1 | egrep -a "^$BASENAME:" | egrep -v "Messages should start" && [ -n "${EMACS_LINT_IGNORE+x}" ]
|
2>&1 | egrep -a "^$BASENAME:" | egrep -v "Messages should start" && [ -n "${EMACS_LINT_IGNORE+x}" ]
|
||||||
|
@ -42,4 +44,4 @@ BASENAME=$(basename $1)
|
||||||
--eval "$INIT_PACKAGE_EL" \
|
--eval "$INIT_PACKAGE_EL" \
|
||||||
-l package-lint.el \
|
-l package-lint.el \
|
||||||
-f package-lint-batch-and-exit \
|
-f package-lint-batch-and-exit \
|
||||||
$1 || [ -n "${EMACS_LINT_IGNORE+x}" ]
|
"$1" || [ -n "${EMACS_LINT_IGNORE+x}" ]
|
||||||
|
|
Loading…
Reference in New Issue