[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: vc-sccs.el sends bad args to cmp(1) via vcdiff script
From: |
Kevin Rodgers |
Subject: |
Re: vc-sccs.el sends bad args to cmp(1) via vcdiff script |
Date: |
Thu, 09 Mar 2006 10:21:37 -0700 |
User-agent: |
Mozilla Thunderbird 0.9 (X11/20041105) |
Jim Marks wrote:
> This problem surfaces on Sun Solaris when trying to use
> version control with SCCS as the backend.
>
> The source file gnu/share/emacs/21.4/lisp/vc-sccs.el has the following
> defun:
>
> (defun vc-sccs-workfile-unchanged-p (file)
> "SCCS-specific implementation of vc-workfile-unchanged-p."
> (zerop (apply 'vc-do-command nil 1 "vcdiff" (vc-name file)
> (list "--brief" "-q"
> (concat "-r" (vc-workfile-version file))))))
>
> The important thing here is that the "--brief" option gets passed
> to vcdiff as well as the "-r" option.
>
> On my system, vcdiff is a helper script in
>
> gnu/libexec/emacs/21.4/sparc-sun-solaris2.8/vcdiff
>
> It contains this code:
>
>
> case $f in
> --brief)
> DIFF=cmp;;
>
> and, later, executes $DIFf. This causes cmp to be invoked
> with a "-r" option. I can't find any Unix-clone on which
> cmp(1) takes "-r". This will always cause certain vc operations
> to fail on systems where SCCS is the vc backend.
Are you sure? I have 21.4 installed, and the vcdiff script also
processes the -rSID1 and -rSID2 options so that they are not passed to
cmp:
-r?*)
case $sid1 in
'')
sid1=$f
;;
*)
case $sid2 in
?*) echo "$usage" >&2; exit 2 ;;
esac
sid2=$f
;;
esac
;;
Perhaps your problem is that vc-workfile-version is returning nil, which
would cause "-r" to be passed to vcdiff, which it cannot handle.
--
Kevin Rodgers