--- ldap.el 2002-06-17 16:33:59.000000000 +0200 +++ ldap.el.new 2002-06-17 16:31:38.000000000 +0200 @@ -528,7 +528,7 @@ (defun ldap-search-internal (search-plis (sizelimit (plist-get search-plist 'sizelimit)) (withdn (plist-get search-plist 'withdn)) (numres 0) - arglist dn name value record result) + arglist dn name filepref value record result) (if (or (null filter) (equal "" filter)) (error "No search filter")) @@ -586,17 +586,25 @@ (defun ldap-search-internal (search-plis (forward-line 1) (while (looking-at "^\\(\\w*\\)[=:\t ]+\\(<[\t ]*file://\\)?\\(.*\\)$") (setq name (match-string 1) + filepref (match-string 2) value (match-string 3)) - (save-excursion - (set-buffer bufval) - (erase-buffer) - (insert-file-contents-literally value) - (delete-file value) - (setq value (buffer-substring (point-min) (point-max)))) - (setq record (cons (list name value) - record)) - (forward-line 1)) - (setq result (cons (if withdn + (while (progn + (forward-line 1) + (and (not (eobp)) + (looking-at "^[ \t]+\\([-A-Za-z0-9_]+\\)"))) + (setq value (concat value (match-string 1)))) + (forward-line -1) + (when filepref + (save-excursion + (set-buffer bufval) + (erase-buffer) + (insert-file-contents-literally value) + (delete-file value) + (setq value (buffer-substring (point-min) (point-max))))) + (setq record (cons (list name value) + record)) + (forward-line 1)) + (setq result (cons (if withdn (cons dn (nreverse record)) (nreverse record)) result)) (setq record nil)