Function: nnmh-request-list-1

nnmh-request-list-1 is a byte-compiled function defined in nnmh.el.gz.

Signature

(nnmh-request-list-1 DIR)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/nnmh.el.gz
(defun nnmh-request-list-1 (dir)
  (setq dir (expand-file-name dir))
  ;; Recurse down all directories.
  (let ((files (nnheader-directory-files dir t nil t))
	(max 0)
	min num subdirectoriesp file) ;; rdir
    ;; Recurse down directories.
    (setq subdirectoriesp
	  ;; link number always 1 on MS Windows :(
	  (/= (file-attribute-link-number
	       (file-attributes (file-truename dir)))
	      2))
    (dolist (rdir files)
      (if (or (not subdirectoriesp)
	      (file-regular-p rdir))
	  (progn
	    (setq file (file-name-nondirectory rdir))
	    (when (string-match "^[0-9]+$" file)
	      (setq num (string-to-number file))
	      (setq max (max max num))
	      (when (or (null min)
			(< num min))
		(setq min num))))
	;; This is a directory.
	(when (and (file-readable-p rdir)
		   (not (equal (file-truename rdir)
			       (file-truename dir))))
	  (nnmh-request-list-1 rdir))))
    ;; For each directory, generate an active file line.
    (unless (string= (expand-file-name nnmh-toplev) dir)
      (with-current-buffer nntp-server-buffer
	(goto-char (point-max))
	(insert
	 (format
	  "%s %.0f %.0f y\n"
	  (progn
	    (string-match
	     (regexp-quote
	      (file-truename (file-name-as-directory
			      (expand-file-name nnmh-toplev))))
	     dir)
	    (encode-coding-string
	     (nnheader-replace-chars-in-string
	      (substring dir (match-end 0))
	      ?/ ?.)
	     nnmail-pathname-coding-system))
	  (or max 0)
	  (or min 1))))))
  t)