Package: git2cl
Version: 2.0+git200808271242-2
Severity: normal

When git2cl is run as:
  git log --pretty --numstat --summary | grep -v 'XXX' | git2cl
to filter out some lines from the change messages it doesn't use stdin
but spawns the git log command itself.

The problem is that the test it uses to determine if it should read from
stdin is to see if there is data already available (with select()). This
is incorrect in the example above due to buffering. It could also easily
be wrong if git starts to do some buffering or the system is loaded and
git2cl is running before git log starts producing output and probably in
more cases.

A quick and dirty "fix" is increasing the timeout of the select:
(this fixes my problem on a not heavily loaded system)

  return $nfd = select($rin, undef, undef, 0.2);

It is probably better to change the test to see if stdin is a pipe, file
or symbolic link (untested but allows removal of key_ready function):

if (-f STDIN or -l STDIN or -p STDIN )
{
  ...

-- System Information:
Debian Release: 7.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: i386 (x86_64)

Kernel: Linux 3.2.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages git2cl depends on:
ii  perl  5.14.2-16

-- 
-- arthur - adej...@debian.org - http://people.debian.org/~adejong --

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to