Package: emacs;
Reported by: Tom Tromey <tom <at> tromey.com>
Date: Wed, 15 Feb 2017 12:40:01 UTC
Severity: minor
Tags: patch
Found in version 25.1.91
Done: Tom Tromey <tom <at> tromey.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 25737 in the body.
You can then email your comments to 25737 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#25737
; Package emacs
.
(Wed, 15 Feb 2017 12:40:01 GMT) Full text and rfc822 format available.Tom Tromey <tom <at> tromey.com>
:bug-gnu-emacs <at> gnu.org
.
(Wed, 15 Feb 2017 12:40:01 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Tom Tromey <tom <at> tromey.com> To: bug-gnu-emacs <at> gnu.org Subject: 25.1.91; vc-git-log-{incoming,outgoing} fixes Date: Wed, 15 Feb 2017 05:38:04 -0700
[Message part 1 (text/plain, inline)]
Yesterday I discovered the useful vc-log-outgoing command. It isn't conveniently bound in vc-dir mode, so I added a binding. But then I discovered a couple of bugs in the git back end; and then later discovered that the same bugs affect vc-git-log-incoming. First, vc-git-log-incoming and vc-git-log-outgoing can be called with a nil value for remote-location. In this case nothing shows up in the log. Changing the code to treat nil the same as the empty string makes the commands show the data I would expect. Next, these commands move point to the end of the new buffer. However, that is weird, because then the buffer is shrunk to fit; for me this ends up making it look like I have just a single outgoing patch, even when I have several. Changing these functions to pass 'async to vc-git-command fixes this. Finally, vc-git-log-view-mode only sets truncate-lines in some situations; I have changed it to also set it for log-outgoing and log-incoming, which makes the output of these commands more closely resemble the output of vc-print-log. Tom
[P (text/x-patch, inline)]
commit 08468554243b048ce408ff7b4fd8543abecaa4c5 Author: Tom Tromey <tom <at> tromey.com> Date: Wed Feb 15 05:12:18 2017 -0700 vc-log-outgoing fixes for git; add binding to vc-dir * lisp/vc/vc-dir.el (vc-dir-mode-map): Bind "O" to vc-log-outgoing. * lisp/vc/vc-git.el (vc-git-log-outgoing, vc-git-log-incoming): Handle remote-location being nil. Use 'async. (vc-git-log-view-mode): Also truncate lines for log-outgoing and log-incoming. more diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el index 5374f1c..532bad1 100644 --- a/lisp/vc/vc-dir.el +++ b/lisp/vc/vc-dir.el @@ -255,6 +255,7 @@ vc-dir-mode-map (define-key map "l" 'vc-print-log) ;; C-x v l (define-key map "L" 'vc-print-root-log) ;; C-x v L (define-key map "I" 'vc-log-incoming) ;; C-x v I + (define-key map "O" 'vc-log-outgoing) ;; C-x v O ;; More confusing than helpful, probably ;;(define-key map "R" 'vc-revert) ;; u is taken by vc-dir-unmark. ;;(define-key map "A" 'vc-annotate) ;; g is taken by revert-buffer diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 0c11a7f..be471c3 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -972,12 +972,12 @@ vc-git-print-log (defun vc-git-log-outgoing (buffer remote-location) (interactive) (vc-git-command - buffer 0 nil + buffer 'async nil "log" "--no-color" "--graph" "--decorate" "--date=short" (format "--pretty=tformat:%s" (car vc-git-root-log-format)) "--abbrev-commit" - (concat (if (string= remote-location "") + (concat (if (or (not remote-location) (string= remote-location "")) "@{upstream}" remote-location) "..HEAD"))) @@ -986,12 +986,12 @@ vc-git-log-incoming (interactive) (vc-git-command nil 0 nil "fetch") (vc-git-command - buffer 0 nil + buffer 'async nil "log" "--no-color" "--graph" "--decorate" "--date=short" (format "--pretty=tformat:%s" (car vc-git-root-log-format)) "--abbrev-commit" - (concat "HEAD.." (if (string= remote-location "") + (concat "HEAD.." (if (or (not remote-location) (string= remote-location "")) "@{upstream}" remote-location)))) @@ -1011,7 +1011,7 @@ vc-git-log-view-mode (cadr vc-git-root-log-format) "^commit *\\([0-9a-z]+\\)")) ;; Allow expanding short log entries. - (when (eq vc-log-view-type 'short) + (when (memq vc-log-view-type '(short log-outgoing log-incoming)) (setq truncate-lines t) (set (make-local-variable 'log-view-expanded-log-entry-function) 'vc-git-expanded-log-entry))
[Message part 3 (text/plain, inline)]
In GNU Emacs 25.1.91.2 (x86_64-unknown-linux-gnu, GTK+ Version 3.22.7) of 2017-02-02 built on bapiya Repository revision: 7e02a477bbcabb4e65aeecade79b67357c0b9dae Windowing system distributor 'Fedora Project', version 11.0.11901000 System Description: Fedora release 25 (Twenty Five) Configured using: 'configure --prefix=/home/tromey/Emacs/install/ --with-modules' Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 MODULES Important settings: value of $LANG: en_US.utf8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: Emacs-Lisp Minor modes in effect: shell-dirtrack-mode: t diff-auto-refine-mode: t flyspell-mode: t which-function-mode: t erc-services-mode: t erc-list-mode: t erc-menu-mode: t erc-autojoin-mode: t erc-ring-mode: t erc-networks-mode: t erc-pcomplete-mode: t erc-track-mode: t erc-match-mode: t erc-netsplit-mode: t erc-hl-nicks-mode: t erc-button-mode: t erc-fill-mode: t erc-stamp-mode: t erc-irccontrols-mode: t erc-noncommands-mode: t erc-move-to-prompt-mode: t erc-readonly-mode: t savehist-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t auto-fill-function: do-auto-fill transient-mark-mode: t Recent messages: Running git --no-pager diff-index --relative -z -M HEAD -- lisp/vc/vc-git.el in background... done Running git --no-pager ls-files -z -c -s -- lisp/vc/vc-git.el in background... done Running git --no-pager log --no-color --graph --decorate --date=short --... --abbrev-commit -n 2000 -- ./ in background... done Finding changes in /home/tromey/Emacs/trunk/... Running git --no-pager diff-tree --exit-code -p 18... 0846855 -- ./...OK = 1 Running git --no-pager log 0846855 -1 -- . in foreground... Running git --no-pager log 0846855 -1 -- ....OK = 0 Finding changes in /home/tromey/Emacs/trunk/... Running git --no-pager diff-tree --exit-code -p 18... 0846855 -- ./...OK = 1 C-x C-g is undefined Load-path shadows: /home/tromey/.emacs.d/elpa/bubbles-0.5/bubbles hides /home/tromey/Emacs/install/share/emacs/25.1.91/lisp/play/bubbles Features: (highlight-refontification tabify man shadow emacsbug conf-mode two-column iso-transl perl-mode sh-script executable cal-move nnregistry python tramp-sh tramp tramp-compat tramp-loaddefs trampver ucs-normalize make-mode etags cursor-sensor mhtml-mode org-bullets org-element org-rmail org-mhe org-irc org-info org-gnus org-docview doc-view image-mode org-bibtex bibtex org-bbdb org-w3m org org-macro org-footnote org-pcomplete org-list org-faces org-entities org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp org-src ob-keys ob-comint ob-core ob-eval org-compat org-macs org-loaddefs gnus-fun gnus-draft noutline outline ido skeleton css-mode smie eww url-queue trace find-dired descr-text gdb-shell lisp-mnt url-handlers url-http url-gw url-auth lex edebug debug m4-mode bbdb-sc supercite regi xref project log-edit js json map sgml-mode flow-fill gnus-html xml url-cache mm-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf eieio-opt speedbar sb-image ezimage dframe find-func whitespace tcl log-view pcvs-util vc-annotate term/xterm xterm smerge-mode goto-addr shell find-file idutils derived bug-reference cc-mode cc-fonts cc-guess cc-menus cc-cmds jka-compr mailalias mail-hist nnir sort gnus-cite smiley shr-color url-util url-parse url-vars shr dom subr-x browse-url mm-archive gnus-async gnus-bcklg qp gnus-ml disp-table gnus-topic nndraft nnmh nnfolder utf-7 bbdb-gnus bbdb-mua bbdb-com crm network-stream nsm starttls gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg nntp gnus-cache gnus-registry registry eieio-compat eieio-base gnus-art mm-uu mml2015 mm-view mml-smime smime dig mailcap gnus-sum gnus-group gnus-undo smtpmail gnus-start gnus-cloud nnimap nnmail mail-source tls gnutls utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range gnus-win gnus gnus-ems nnheader bbdb-message sendmail mail-extr message idna dired rfc822 mml mml-sec epg mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils gmm-utils mailheader gud dwarf-mode copyright dabbrev misearch multi-isearch vc-mtn vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs add-log rx vc-git diff-mode easy-mmode rust-mode flyspell ispell diminish edmacro kmacro projectile grep compile ibuf-ext ibuffer dash appt diary-lib diary-loaddefs cal-menu calendar cal-loaddefs which-func imenu minimap autorevert filenotify cus-start cus-load status erc-services erc-list erc-menu erc-join erc-ring erc-networks erc-pcomplete pcomplete erc-track erc-match erc-netsplit erc-hl-nicks color erc-button erc-fill erc-stamp wid-edit erc-goodies erc erc-backend erc-compat format-spec auth-source eieio gnus-util mm-util help-fns mail-prsvr password-cache thingatpt pp warnings advice vc-dir ewoc vc vc-dispatcher cc-styles cc-align cc-engine cc-vars cc-defs bbdb bbdb-site timezone ange-ftp comint ansi-color ring server savehist finder-inf dwarf-mode-autoloads gdb-shell-autoloads eieio-core lisppaste-autoloads pydoc-info-autoloads info-look cl-seq cl-macs cl weblogger-autoloads info package epg-config seq byte-opt gv bytecomp byte-compile cl-extra help-mode easymenu cconv cl-loaddefs pcase cl-lib bbdb-loaddefs time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote dbusbind inotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 2750314 537335) (symbols 48 139907 709) (miscs 40 34395 10086) (strings 32 583581 192504) (string-bytes 1 17328869) (vectors 16 139544) (vector-slots 8 2879816 108437) (floats 8 950 1483) (intervals 56 342103 9442) (buffers 976 380))
bug-gnu-emacs <at> gnu.org
:bug#25737
; Package emacs
.
(Thu, 16 Feb 2017 10:49:01 GMT) Full text and rfc822 format available.Message #8 received at 25737 <at> debbugs.gnu.org (full text, mbox):
From: Dmitry Gutov <dgutov <at> yandex.ru> To: Tom Tromey <tom <at> tromey.com>, 25737 <at> debbugs.gnu.org Subject: Re: bug#25737: 25.1.91; vc-git-log-{incoming,outgoing} fixes Date: Thu, 16 Feb 2017 12:48:51 +0200
On 15.02.2017 14:38, Tom Tromey wrote: > > Yesterday I discovered the useful vc-log-outgoing command. It isn't > conveniently bound in vc-dir mode, so I added a binding. But then I > discovered a couple of bugs in the git back end; and then later > discovered that the same bugs affect vc-git-log-incoming. Thanks. > First, vc-git-log-incoming and vc-git-log-outgoing can be called with a > nil value for remote-location. In this case nothing shows up in the > log. Changing the code to treat nil the same as the empty string makes > the commands show the data I would expect. Do you know when they get called with ""? Should we maybe just change the callers to always use one or the other value? > Next, these commands move point to the end of the new buffer. However, > that is weird, because then the buffer is shrunk to fit; for me this > ends up making it look like I have just a single outgoing patch, even > when I have several. Any ideas why that happens? I can see point ending up at eob when the call is synchronous, but that doesn't affect the shrinking behavior much (e.g. I have 13 lines, the window shrinks correctly but hides the first line because the cursor is after the last line, and it has to be visible). I've only tested this in vc-log-incoming, however. > Changing these functions to pass 'async to > vc-git-command fixes this. I don't mind, but it would be great to know the underlying reasons for the problems. And we have a somewhat similar bug with vc-print-root-log, too (point jumps to the end when the log is small enough or something). > Finally, vc-git-log-view-mode only sets truncate-lines in some > situations; I have changed it to also set it for log-outgoing and > log-incoming, which makes the output of these commands more closely > resemble the output of vc-print-log. Sounds good.
bug-gnu-emacs <at> gnu.org
:bug#25737
; Package emacs
.
(Fri, 17 Feb 2017 04:02:02 GMT) Full text and rfc822 format available.Message #11 received at 25737 <at> debbugs.gnu.org (full text, mbox):
From: Tom Tromey <tom <at> tromey.com> To: Dmitry Gutov <dgutov <at> yandex.ru> Cc: Tom Tromey <tom <at> tromey.com>, 25737 <at> debbugs.gnu.org Subject: Re: bug#25737: 25.1.91; vc-git-log-{incoming,outgoing} fixes Date: Thu, 16 Feb 2017 21:01:34 -0700
>>>>> "Dmitry" == Dmitry Gutov <dgutov <at> yandex.ru> writes: >> First, vc-git-log-incoming and vc-git-log-outgoing can be called with a >> nil value for remote-location. In this case nothing shows up in the >> log. Changing the code to treat nil the same as the empty string makes >> the commands show the data I would expect. Dmitry> Do you know when they get called with ""? vc-log-outgoing does: (interactive (when current-prefix-arg (list (read-string "Remote location (empty for default): ")))) So a prefix argument followed by pressing enter. Dmitry> Should we maybe just change the callers to always use one or the other Dmitry> value? Seems reasonable, I'll change vc-log-outgoing. >> Next, these commands move point to the end of the new buffer. However, >> that is weird, because then the buffer is shrunk to fit; for me this >> ends up making it look like I have just a single outgoing patch, even >> when I have several. Dmitry> Any ideas why that happens? I can see point ending up at eob when the Dmitry> call is synchronous, but that doesn't affect the shrinking behavior Dmitry> much (e.g. I have 13 lines, the window shrinks correctly but hides the Dmitry> first line because the cursor is after the last line, and it has to be Dmitry> visible). Dmitry> I've only tested this in vc-log-incoming, however. There are two pieces. As you say, point ends up at eob due to vc-do-command using process-file in the synchronous case; whereas for the async case, vc-process-filter uses save-excursion. The other behavior seems to be a problem in shrink-window-if-larger-than-buffer. I can reproduce it easily just with any buffer by moving point to the end. I didn't debug this any further than finding that. Tom
bug-gnu-emacs <at> gnu.org
:bug#25737
; Package emacs
.
(Fri, 17 Feb 2017 04:06:01 GMT) Full text and rfc822 format available.Message #14 received at 25737 <at> debbugs.gnu.org (full text, mbox):
From: Tom Tromey <tom <at> tromey.com> To: Dmitry Gutov <dgutov <at> yandex.ru> Cc: Tom Tromey <tom <at> tromey.com>, 25737 <at> debbugs.gnu.org Subject: Re: bug#25737: 25.1.91; vc-git-log-{incoming,outgoing} fixes Date: Thu, 16 Feb 2017 21:05:04 -0700
[Message part 1 (text/plain, inline)]
Here's an updated patch. Tom
[P (text/x-patch, inline)]
commit 6427cf681a635b0a60c1b923b92ece4348eff250 Author: Tom Tromey <tom <at> tromey.com> Date: Wed Feb 15 05:12:18 2017 -0700 vc-log-outgoing fixes for git; add binding to vc-dir * lisp/vc/vc-dir.el (vc-dir-mode-map): Bind "O" to vc-log-outgoing. * lisp/vc/vc-git.el (vc-git-log-outgoing, vc-git-log-incoming): Use async execution. (vc-git-log-view-mode): Also truncate lines for log-outgoing and log-incoming. * lisp/vc/vc.el (vc-log-incoming, vc-log-outgoing): Don't pass nil as remote-location argument. diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el index 5374f1c..532bad1 100644 --- a/lisp/vc/vc-dir.el +++ b/lisp/vc/vc-dir.el @@ -255,6 +255,7 @@ vc-dir-mode-map (define-key map "l" 'vc-print-log) ;; C-x v l (define-key map "L" 'vc-print-root-log) ;; C-x v L (define-key map "I" 'vc-log-incoming) ;; C-x v I + (define-key map "O" 'vc-log-outgoing) ;; C-x v O ;; More confusing than helpful, probably ;;(define-key map "R" 'vc-revert) ;; u is taken by vc-dir-unmark. ;;(define-key map "A" 'vc-annotate) ;; g is taken by revert-buffer diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 0c11a7f..3546a17 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -972,7 +972,7 @@ vc-git-print-log (defun vc-git-log-outgoing (buffer remote-location) (interactive) (vc-git-command - buffer 0 nil + buffer 'async nil "log" "--no-color" "--graph" "--decorate" "--date=short" (format "--pretty=tformat:%s" (car vc-git-root-log-format)) @@ -986,7 +986,7 @@ vc-git-log-incoming (interactive) (vc-git-command nil 0 nil "fetch") (vc-git-command - buffer 0 nil + buffer 'async nil "log" "--no-color" "--graph" "--decorate" "--date=short" (format "--pretty=tformat:%s" (car vc-git-root-log-format)) @@ -1011,7 +1011,7 @@ vc-git-log-view-mode (cadr vc-git-root-log-format) "^commit *\\([0-9a-z]+\\)")) ;; Allow expanding short log entries. - (when (eq vc-log-view-type 'short) + (when (memq vc-log-view-type '(short log-outgoing log-incoming)) (setq truncate-lines t) (set (make-local-variable 'log-view-expanded-log-entry-function) 'vc-git-expanded-log-entry)) diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index 80166f6..23b8980 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el @@ -2404,8 +2404,8 @@ vc-log-incoming (let ((backend (vc-deduce-backend))) (unless backend (error "Buffer is not version controlled")) - (vc-incoming-outgoing-internal backend remote-location "*vc-incoming*" - 'log-incoming))) + (vc-incoming-outgoing-internal backend (or remote-location "") + "*vc-incoming*" 'log-incoming))) ;;;###autoload (defun vc-log-outgoing (&optional remote-location) @@ -2417,8 +2417,8 @@ vc-log-outgoing (let ((backend (vc-deduce-backend))) (unless backend (error "Buffer is not version controlled")) - (vc-incoming-outgoing-internal backend remote-location "*vc-outgoing*" - 'log-outgoing))) + (vc-incoming-outgoing-internal backend (or remote-location "") + "*vc-outgoing*" 'log-outgoing))) ;;;###autoload (defun vc-region-history (from to)
bug-gnu-emacs <at> gnu.org
:bug#25737
; Package emacs
.
(Mon, 20 Feb 2017 01:54:01 GMT) Full text and rfc822 format available.Message #17 received at 25737 <at> debbugs.gnu.org (full text, mbox):
From: Dmitry Gutov <dgutov <at> yandex.ru> To: Tom Tromey <tom <at> tromey.com> Cc: 25737 <at> debbugs.gnu.org Subject: Re: bug#25737: 25.1.91; vc-git-log-{incoming,outgoing} fixes Date: Mon, 20 Feb 2017 03:53:24 +0200
On 17.02.2017 06:01, Tom Tromey wrote: > Dmitry> Do you know when they get called with ""? > > vc-log-outgoing does: > > (interactive > (when current-prefix-arg > (list (read-string "Remote location (empty for default): ")))) > > So a prefix argument followed by pressing enter. > > Dmitry> Should we maybe just change the callers to always use one or the other > Dmitry> value? > > Seems reasonable, I'll change vc-log-outgoing. Thanks. > As you say, point ends up at eob due to vc-do-command using process-file > in the synchronous case; whereas for the async case, vc-process-filter > uses save-excursion. Yes, and it's a problem we need to fix either way. > The other behavior seems to be a problem in > shrink-window-if-larger-than-buffer. I can reproduce it easily just > with any buffer by moving point to the end. I didn't debug this any > further than finding that. Might want to look into that sometime. I've tried that in different configurations, and 'M-x shrink-window-if-larger-than-buffer' doesn't do anything if the buffer is longer than the current window height. If it's shorter, the window gets shrunk appropriately, with only the off-by-one scrolling problem.
bug-gnu-emacs <at> gnu.org
:bug#25737
; Package emacs
.
(Mon, 20 Feb 2017 01:55:02 GMT) Full text and rfc822 format available.Message #20 received at 25737 <at> debbugs.gnu.org (full text, mbox):
From: Dmitry Gutov <dgutov <at> yandex.ru> To: Tom Tromey <tom <at> tromey.com> Cc: 25737 <at> debbugs.gnu.org Subject: Re: bug#25737: 25.1.91; vc-git-log-{incoming,outgoing} fixes Date: Mon, 20 Feb 2017 03:53:59 +0200
On 17.02.2017 06:05, Tom Tromey wrote: > Here's an updated patch. Thanks. Please go ahead and install.
Tom Tromey <tom <at> tromey.com>
:Tom Tromey <tom <at> tromey.com>
:Message #25 received at 25737-done <at> debbugs.gnu.org (full text, mbox):
From: Tom Tromey <tom <at> tromey.com> To: 25737-done <at> debbugs.gnu.org Subject: done Date: Fri, 24 Feb 2017 21:03:27 -0700
This is checked in. Tom
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Sat, 25 Mar 2017 11:24:03 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.