bongo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bongo-devel] Emacs 21


From: Daniel Brockman
Subject: Re: [bongo-devel] Emacs 21
Date: Wed, 27 Dec 2006 17:25:09 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

address@hidden (Daniel Jensen) writes:

> I experimented with loading and running Bongo in Emacs 21. (And had
> fun reading "Antinews" in the manuals.) There are a lot of problems
> that need to be resolved, but I believe these are mostly details. It
> should be possible to make a good Bongo backport with a little work.

Encouraged by your findings, Daniel, I started doing this backport.

> I have outlined what appears to be the most urgent tasks. Without
> fixing these, Bongo will not load. Most probably there are also other
> issues that will come clear, if we go ahead and target Emacs 21.

Okay, consider Emacs 21 targeted.  I have fixed all the
issues that you described in your message --- see below.

> Customize: No `custom-reevaluate-setting' or `customize-mark-as-set'.
> Needs workaround.

Wrapper functions `bongo-custom-reevaluate-setting' and
`bongo-customize-mark-as-set'.  Implementation copied.

> Moving: Functions `move-beginning-of-line', `move-end-of-line' and
> `line-move-invisible-p' do not exist.

The useful functionality of those functions are now
reimplemented in `bongo-point-at-{bol,eol}' and
`bongo-{before,after}-invisible-text-p'.

> Potentially needs a lot of debugging invisibility and
> so on.

Yeah, about that... :-)

> Fringe: No fringe bitmaps. Bongo should silently accept this.

I can't run X at the time of writing, but it seems to me
that Bongo already silently accepts this --- please confirm.

> Keymaps: I found a few errors, but I haven't had a close look.

Binding "ia" in a suppressed keymap didn't work in Emacs 21.
You have to first undefine "i".  So that's what I did.

> Other missing functions: `run-mode-hooks', `define-global-minor-mode',

Implementations copied into `bongo-run-mode-hooks' and
`bongo-define-global-minor-mode'.  The latter is bloated and we
don't need it all, so we might consider inlining it somehow.

> `define-obsolete-function-alias',

Implementation copied into `bongo-define-obsolete-function-alias'.

> `define-obsolete-variable-alias',

Can't implement this in Emacs 21 as there are no variable aliases.
Non-aliasing implementation in `bongo-define-obsolete-variable-alias'.

> 'char-displayable-p',

Usage conditionalized on fboundness.

> 'time-subtract',

This is called `subtract-time' in Emacs 21, and I even like that
name better, so Bongo uses it now (it's an alias in Emacs 22).

> `read-directory-name'.

Wrapper `bongo-read-directory-name' simply calls `read-file-name'.

> Most of which are not hard to replace, I think.

You were right.  I put replacement implementations in the
newly added file `bongo-emacs21.el'.

> Regexps: Rx is a little different in Emacs 21, don't know exactly how.

You have to say `and' all over the place.  Most notably, you
have to say `(rx (and foo bar))' instead of just `(rx foo bar)'.
Also, you have to say `(optional (and foo bar))' instead of the
simpler `(optional foo bar)'.  Bongo does this now.

> Wrong number of arguments: `next-line', `previous-line',

These were too easy --- I just put in 1's.

> `face-foreground',

I wrapped this as `bongo-face-foreground'.  I also put in a
wrapper `bongo-face-background' --- we needed that too.

> `defalias'. Pretty easy to fix.

We were using the third argument DOCSTRING for `defalias' in
one place, and even that wasn't called for, so I just stopped
calling this with more than two arguments.  Problem solved.


With these changes, Bongo loads and runs in my Emacs 21.
I encourage everyone to try it out and report problems ---
especially people who can run X.

Daniel, thank you for the report.  I have no idea if and
when I would have gotten around to doing this without it.

All you Emacs 21 users out there, merry christmas!
Maybe you'll even get a Debian package soon. :-)


-- 
Daniel Brockman <address@hidden>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]