- time (buffer-substring (match-beginning 1)
- (1- (dired-move-to-filename)))
- name (buffer-substring (point)
- (or
- (dired-move-to-end-of-filename t)
- (point)))
- sym (if (looking-at-p " -> ")
- (buffer-substring (progn (forward-char 4) (point))
- (line-end-position))
- ""))
+ (progn
+ (re-search-backward
+ directory-listing-before-filename-regexp)
+ (skip-chars-forward "^ \t")
+ (1+ (point))))
+ size (dired-x--string-to-number
+ ;; We know that there's some kind of number
+ ;; before point because the regexp search
+ ;; above succeeded. I don't think it's worth
+ ;; doing an extra check for leading garbage.
+ (buffer-substring (point)
+ (progn
+ (skip-chars-backward "^ \t")
+ (point))))
+ ;; If no gid is displayed, gid will be set to uid
+ ;; but the user will then not reference it anyway in
+ ;; PREDICATE.
+ gid (buffer-substring (progn
+ (skip-chars-backward " \t")
+ (point))
+ (progn
+ (skip-chars-backward "^ \t")
+ (point)))))
+ (setq name (buffer-substring (point)
+ (or
+ (dired-move-to-end-of-filename t)
+ (point)))
+ sym (if (looking-at " -> ")
+ (buffer-substring (progn (forward-char 4) (point))
+ (line-end-position))
+ ""))