Mercurial > hg > xemacs-beta
comparison lisp/find-paths.el @ 5125:b5df3737028a ben-lisp-object
merge
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Wed, 24 Feb 2010 01:58:04 -0600 |
parents | 9c6ea1581159 |
children | 308d34e9f07d |
comparison
equal
deleted
inserted
replaced
5124:623d57b7fbe8 | 5125:b5df3737028a |
---|---|
350 (cons (car directories) | 350 (cons (car directories) |
351 reverse-directories))) | 351 reverse-directories))) |
352 (setq directories (cdr directories))) | 352 (setq directories (cdr directories))) |
353 (reverse reverse-directories))) | 353 (reverse reverse-directories))) |
354 | 354 |
355 (defun paths-uniq-append (list-1 list-2) | |
356 "Append LIST-1 and LIST-2, omitting EQUAL duplicates." | |
357 (let ((reverse-survivors '())) | |
358 (while list-2 | |
359 (if (null (member (car list-2) list-1)) | |
360 (setq reverse-survivors (cons (car list-2) reverse-survivors))) | |
361 (setq list-2 (cdr list-2))) | |
362 (append list-1 | |
363 (reverse reverse-survivors)))) | |
364 | |
365 (defun paths-filter (predicate list) | |
366 "Delete all matches of PREDICATE from LIST." | |
367 (let ((reverse-result '())) | |
368 (while list | |
369 (if (funcall predicate (car list)) | |
370 (setq reverse-result (cons (car list) reverse-result))) | |
371 (setq list (cdr list))) | |
372 (nreverse reverse-result))) | |
373 | |
374 (defun paths-decode-directory-path (string &optional drop-empties) | 355 (defun paths-decode-directory-path (string &optional drop-empties) |
375 "Split STRING at path separators into a directory list. | 356 "Split STRING at path separators into a directory list. |
376 Non-\"\" components are converted into directory form. | 357 Non-\"\" components are converted into directory form. |
377 If DROP-EMPTIES is non-NIL, \"\" components are dropped from the output. | 358 If DROP-EMPTIES is non-NIL, \"\" components are dropped from the output. |
378 Otherwise, they are left alone." | 359 Otherwise, they are left alone." |
382 (if (string-equal "" component) | 363 (if (string-equal "" component) |
383 component | 364 component |
384 (file-name-as-directory component))) | 365 (file-name-as-directory component))) |
385 components))) | 366 components))) |
386 (if drop-empties | 367 (if drop-empties |
387 (paths-filter #'(lambda (component) | 368 (delete "" directories) |
388 (null (string-equal "" component))) | |
389 directories) | |
390 directories))) | 369 directories))) |
391 | 370 |
392 ;;; find-paths.el ends here | 371 ;;; find-paths.el ends here |