# $Id: BUGS,v 1.2 2003/06/21 10:24:03 ianmacd Exp $

Known issues with acoc
----------------------

- Interactive programs do not work well with acoc.

  This includes things like 'make config' when building a kernel on Linux,
  Ruby's interactive interpreter (irb) and others.

- TkDiff displays error messages when calling diff via acoc.

- curses based programs don't always work correctly, such as mtr.

- programs that expect to output to a tty may act oddly when called by acoc,
  since their output is first passed through a pipe to acoc and only then sent
  to stdout.

  For example, if you use ls to display your filenames in colour, you will
  probably want to alias ls to 'ls --color=always' to run it through acoc and
  retain the filename colouring.

  ls also formats its basic output as a single column if it detects that it is
  not outputting to a tty, so the output of 'ls' will be the same as for
  'ls -1' when called via acoc.

- A similar problem occurs when acoc is invoked via a symlink and acoc's
  stdout is not a tty.

  Consider the following line of code from /etc/bashrc on a Red Hat Linux
  system:

    if [ "`id -gn`" = "`id -un`" -a `id -u` -gt 99 ]; then

  If id(1) is symlinked to acoc and acoc adds ANSI colour codes to id's
  output, the backticks in the above three invocations of id will capture the
  colour codes along with the normal output, causing the comparison to fail
  with an error.

  For this reason, the default behaviour as of version 0.2.5 is to leave
  command output unaltered if stdout is not a tty. This can be overridden
  by specifying the /t flag on a 'program_spec'.


If you encounter one of the above problems while invoking a program via a
symlink to acoc and need to avoid running the program through acoc on this
particular occasion, call the program using its full path to ensure that acoc
is bypassed, e.g.

$ /usr/bin/make config

instead of:

$ make config

If the program is called indirectly, such as diff being called by TkDiff,
circumvent the calling of diff via acoc by passing your program an explicit
path that omits /usr/acoc/bin, e.g.

$ PATH=/usr/bin:/usr/local/bin:/usr/X11R6/bin tkdiff file1 file2

Then, the /usr/acoc/bin/diff symlink will not be found when TkDiff invokes
diff.
