view lisp/gnus/nnnil.el @ 57952:a6f82b95d10b

* xselect.c (struct selection_event_queue, selection_queue) (x_queue_selection_requests, x_queue_event) (x_start_queuing_selection_requests) (x_stop_queuing_selection_requests): Add new queue for selection input events to replace previous XEvent queue in xterm.c. (queue_selection_requests_unwind): Adapt to new queue. (x_reply_selection_request): Adapt to new queue. Unexpect wait_object in case of x errors (memory leak). (x_handle_selection_request, x_handle_selection_clear): Make static. (x_handle_selection_event): New function. May queue selection events. (wait_for_property_change_unwind): Use save_value instead of cons. Clear property_change_reply_object. (wait_for_property_change): Abort if already waiting. Use save_value instead of cons for unwind data. (x_handle_property_notify): Skip events already arrived, but don't free them, as "arrived" field is checked by wait_for_property_change, and it will be freed by unwind or explicit unexpect_property_change. (x_get_foreign_selection): Add to new queue. (receive_incremental_selection): Don't unexpect wait_object when done as it has already been freed by previous wait_for_property_change.
author Kim F. Storm <storm@cua.dk>
date Fri, 05 Nov 2004 11:30:31 +0000
parents 55fd4f77387a
children 18a818a2ee7c
line wrap: on
line source

;;; nnnil.el --- empty backend for Gnus
;; Public domain.

;; Author: Paul Jarc <prj@po.cwru.edu>

;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.

;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING.  If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.

;;; Commentary:

;; nnnil is a Gnus backend that provides no groups or articles.  It's useful
;; as a primary select method when you want all your real select methods to
;; be secondary or foreign.

;;; Code:

(eval-and-compile
  (require 'nnheader))

(defvar nnnil-status-string "")

(defun nnnil-retrieve-headers (articles &optional group server fetch-old)
  (save-excursion
    (set-buffer nntp-server-buffer)
    (erase-buffer))
  'nov)

(defun nnnil-open-server (server &optional definitions)
  t)

(defun nnnil-close-server (&optional server)
  t)

(defun nnnil-request-close ()
  t)

(defun nnnil-server-opened (&optional server)
  t)

(defun nnnil-status-message (&optional server)
  nnnil-status-string)

(defun nnnil-request-article (article &optional group server to-buffer)
  (setq nnnil-status-string "No such group")
  nil)

(defun nnnil-request-group (group &optional server fast)
  (let (deactivate-mark)
    (save-excursion
      (set-buffer nntp-server-buffer)
      (erase-buffer)
      (insert "411 no such news group\n")))
  (setq nnnil-status-string "No such group")
  nil)

(defun nnnil-close-group (group &optional server)
  t)

(defun nnnil-request-list (&optional server)
  (save-excursion
    (set-buffer nntp-server-buffer)
    (erase-buffer))
  t)

(defun nnnil-request-post (&optional server)
  (setq nnnil-status-string "Read-only server")
  nil)

(provide 'nnnil)

;;; arch-tag: a982a1a3-bc5e-4fb1-a233-d7657a3e3257