From: Leo Liu Date: Wed, 8 Jul 2015 16:50:58 +0000 (+0800) Subject: Fix column width calculation in cvs-mode.el X-Git-Url: https://code.delx.au/gnu-emacs-elpa/commitdiff_plain/0ab817bc2278f0de2d2ee7cecb61e0d3a19ffe19 Fix column width calculation in cvs-mode.el * csv-mode/cvs-mode.el (csv--column-widths, csv-align-fields): Fix column width calculation. --- diff --git a/packages/csv-mode/csv-mode.el b/packages/csv-mode/csv-mode.el index 692579df1..1e20f8cd2 100644 --- a/packages/csv-mode/csv-mode.el +++ b/packages/csv-mode/csv-mode.el @@ -5,7 +5,7 @@ ;; Author: Francis J. Wright ;; Time-stamp: <23 August 2004> ;; URL: http://centaur.maths.qmul.ac.uk/Emacs/ -;; Version: 1.4 +;; Version: 1.5 ;; Keywords: convenience ;; This package is free software; you can redistribute it and/or modify @@ -964,18 +964,17 @@ The fields yanked are those last killed by `csv-kill-fields'." (while (not (eobp)) ; for each record... (or (csv-not-looking-at-record) (let ((w widths) - (beg (point)) ; Beginning of current field. + (col (current-column)) x) (while (not (eolp)) (csv-end-of-field) - (setq x (- (point) beg)) ; Field width. + (setq x (- (current-column) col)) ; Field width. (if w (if (> x (car w)) (setcar w x)) (setq w (list x) widths (nconc widths w))) (or (eolp) (forward-char)) ; Skip separator. - (setq w (cdr w) - beg (point))))) + (setq w (cdr w) col (current-column))))) (forward-line)) widths)) @@ -1021,8 +1020,8 @@ If there is no selected region, default to the whole buffer." (align-padding (if (bolp) 0 csv-align-padding)) (left-padding 0) (right-padding 0) (field-width - ;; FIXME: Don't assume length=string-width! - (progn (csv-end-of-field) (- (point) beg))) + (- (- (current-column) + (progn (csv-end-of-field) (current-column))))) (column-width (pop w)) (x (- column-width field-width))) ; Required padding. (set-marker end (point)) ; End of current field.