Ben's XEmacs To-Do List

Please contact Ben at ben@xemacs.org concerning this list.

"Pri" in the table below means priority, i.e. within how much time should this feature be completed?

"Dif" in the table below means difficulty, i.e. how much time will it take to complete this feature?

Both are specified using an exponential-time scale, with priority starting at 10 and working down, and difficulty starting at 0 and working up.  Fractions are perfectly allowed, to indicate in-between times: e.g. priority of 9.5 means something like "should be done today but can slip to tomorrow", whereas priority 10 means "today and I mean today".

Priority looks like

Difficulty looks like

Some notes about the difficulty level: 

"Type" should be something like

"Date" is the date the entry was added or significantly revised -- to keep track of high-priority items that keep getting shoved aside for whatever reason, and really need to be completed soon.




To-do:

NOTE: You can link to any particular entry in the table below using its number as an anchor.

# Type Pri Dif Date Description
129   10   2001-04-23 Get my working ws committed.test the change where the changelog buffers are killed after the mail has been sent.  get working stuff sent out: [a] review the patches carefully [can be done to some degree afterwards]; [b] look through and group related changelog entries as much as possible; [c] write some text about the changes i'm including, point out what might be suitable for 21.4, and ask certain people to look at certain parts [e.g. bill perry to look at the gtk and g?? mouse changes]
5   9   2001-04-02 [define "importance" somewhere in the NEWS file? at its bottom? somewhere in an "XEmacs procedures" web site section?]
6   9   2001-04-02 update my about-page entry and finish rest of work on about.el; also need patch to event-stream.c; make sure efs now works with efs patch applied; as for fixing up button1 to work like widget-button-click, need to copy the same code that makes the color change when the widget is pressed down, and the unwind-protect code is moved to a mouse-track-cleanup-hook, which can be an on-the-fly-generated lambda [using backquotes] to get around the lack of first-class objects in xemacs and the lack of an event object passed in [as will be the case soon] to easily index the necessary info.  finish fixing up all the email addresses in about.el to point to @xemacs.org whenever possible, and finish editing the virtusertable on tux to add any necessary entries for people in the about.el email list but not at xemacs.org. [need efs to do that]
92   9   2001-04-15 bug with cvs-diff script: cdi help.el works, but cdi -l help.el doesn't, instead diffs the whole dir.  also cdi -w help.el spits out a warning about a bad arg when it shouldn't.  need to look into arg processing.  probably -l "means" something that scarfs the next arg?
95   9   2001-04-15 fix my control-kp-down functions so that they always go to the *beginning* of the Index line, to facilitate easy cutting and pasting of patches.
116   9   stephen needs to apply my event-stream.c patch
78   8   2001-04-10 send the above description to hrvoje in response to his mail.
82   8   2001-04-10 need to move all my workspaces off of temporary-21-5 before Thursday.  specifically, fixupm, mule-update need to be `cup -r release-21-2' 'd, and any conflicts in mule-update need to be fixed; but first check mule-update to make sure that are no current conflicts.  also cup latest-stable, rm -rf latest, mv latest-stable latest.  also cup fixup2 through fixup5.  make a list somewhere of all of my workspaces -- ALL OF THEM -- and their purposes.
83   8   2001-04-10 check what's in my various workspaces and put that list on the computer; formerly it was on paper.
15   8   2001-04-02 finish getting stuff in working ws Changelog'd, reviewed, and checked in. still need to do more work [a] fixing GTK warnings; [b] testing etags change [automatically checking parent directories for tag files]; [c] separating potentially controversial splash screen change and finishing testing it.
53   8   2001-04-04 send status to japanese
57   8   2001-04-05 in Cygwin HOWTO [somewhere on the web page?], point out common problems:
  • Errors from make like /c:not found: make sure you set the environment variable MAKE_MODE to UNIX in your .bashrc, Emacs init file, or Control Panel [NT]/AUTOEXEC.BAT [95]
  • Lots of compile errors, esp. on lines containing macro definitions terminated by backslashes: Your partition holding the source files is mounted binary.  needs to be text.  [this will not screw up any binary files because the Cygwin utilities specify explicitly whether they want binary or text mode when working with source vs. binary files, which overrides the mount type.]
  • Problems with build not working -- e.g. make failing with exit code 127 in inexplicable situations, syntax errors running configure scripts -- you have ash in /bin/sh; you need bash there.
55   8   2001-04-05 update PROBLEMS file to mention Cygwin hangs [due to an mmap problem?]
122   8   2001-04-23 new sort changes: test, get checked in.
127   8   2001-04-23 start adding all my mule etc. docs to this web page, and gradually webifying them
139   8   2001-04-26  21.4 needs menu to turn on eol recognition
8   7   2001-04-02 wait for Hrvoje to finish his Windows FAQ updates and then merge into the main FAQ
69   7   2001-04-08  MS Windows print support needs to be improved. For example, there needs to be a menu entry for Page Setup ... and the Print ... option clearly needs to pop up a dialog box, not just print directly!
80   7   2001-04-10 separate out splash screen changes and send to xemacs-review for comment.
86   7   2001-04-11 patcher -- really does need a version of patcher-mail that works on a particular directory or file, so that the same directory or file can be specified when doing a cvs commit.  also, document more carefully the exact sequence, esp. when committing comes into play, and add comments about using a special version of cvs [e.g. crw] for committing.  also, the particular command used to commit may be dependent on the workspace. [in general, the workspace parameters need to be changed to standard keyword-type options, and the diff-command needs to be one of them.
108   7   2001-04-18

 

send sysdep changes out
109   7   test my critical changes and get them applied.
113   7   move sysdep and process-unix changes to their own workspace, test under windows and cygwin, send for review
40   7   2001-04-02 Clean up my splash-screen changes
119   7   look over new installer and figure out how to get it mentioned in www.windows95.com and other standard software repositories
136   7   2001-04-26  check for VC++ symbols for better debugging.  look on the microsoft web site to see if anything is mentioned.
140   7   2001-04-26  investigate setup programs; get the download pages working so that they're up-to-date and contain correct and non-confusing information about which setup program to use and how to download.  get xemacs announced on the major software archives, e.g. windows95.com.
149   6.5   2001-04-30 get efs patch sent to steve to apply; get our procedure about critical fixes, as suggested by hrvoje, somewhere established [e.g. on the web site in a section on procedures]. 
11   6   2001-04-02 get font-locking working on web pages
23   6   2001-04-02 fix problems w/dialog boxes such as search: in particular, focus is not set and the dreaded "I see two copied of each key" [TranslateMessage or whatever is getting called twice] This was supposedly fixed before; see Kirill's ChangeLog entry of 2000-07-18.
24   6   2001-04-02 finish up my "unsigned remove"!  includes our own sizeof[] macro, our own str...() funs, [and our own clib IO funs [no more encapsulation crap in sysdep.c/.h] ...] put off the encapsulation removal stuff into a different workspace -- stephen wants this sooner.  it's almost done -- define exactly what needs to be done, hopefully no more than the sizeof and string function changes just mentioned, figure out the correct prefix [find where i've written up what the names should be, something like qxe plus maybe a function category indicator], do it.
31   6   2001-04-02 transcribe my list of bugs from paper.
33   6   2001-04-02 The intro (i.e. first page) of the various XEmacs manuals should explain their relation to each other: In particular, the New User's Guide is really an introduction, while the XEmacs Reference Manual is a thorough reference. 
91   6   2001-04-14 compare Martin's and my version of cvs-diff and cvs-update scripts and merge all the features; then get the result [and other scripts of mine, and generally useful scripts of his from xemacs-builds], and put everything into xemacs-devel.
106   6   2001-04-18

 

write up new ideas about instantiators as objects.  rename to descriptors.  look at Bill Perry's file dialog box code.  write to Bill Perry, Andy.
4   6   2001-04-02 write to Andy and ask for more widget docs -- specifically, the sequence of events at creation: if I [e.g.] make a Lisp call to insert a button into a buffer, [a] what happens before the call returns [be specific -- what objects created in XEmacs, in the window system, etc.], [b] are any "update-me" events pushed onto the event queue?, [c] does anything happen in response to the WM_CREATE message, [d] what happens [e.g. what objects are created -- in XEmacs, in the window system, etc.] the next time that redisplay[] is called, and what happens when a WM_PAINT message or equivalent is processed?

what is the sequence of events when a layout is created?  how does redisplay updating of a layout work?

7   6   2001-04-02 find those FAQ questions, stick in this to-do list, and update the FAQ
  • how do I turn off backups, or put them all in one place?
  • My auto-save is slow!
  • how do I put all auto-save files in one place?
  • how do I search over multiple files?
  • how do I do a search and replace over multiple files?
  • when using regular expressions to do a search/replace, how do I remember part of what was found and insert it a the appropriate place in the replace string?
  • how do I enable or disable use of the alt key under windows as a menu accelerator, as opposed to as the meta key for M-f and such?
  • how do I use gnuclient under windows?
  • where is a list of all XEmacs versions and release dates?
10   6   2001-04-02 set up scripts to easily convert between Front Page and non-fpage format -- there is already an html->content, and genpage itself goes the other way, but that's not what I want -- I want to be able to move back and forth and preserve the genpage formatting.  At first, just a way to create a page w/FrontPage and later move to content. [script is already there, may need mods]
13   6   2001-04-02 Windows installer -- keep up with that. either get someone to make one or I'll do it w/wise.
14   6   2001-04-02 finish up work on changing the download portion of the web site/ftp sites to be easier to use and w/clearer, more consistent design.
20   6   2001-04-02 put my CVS scripts on the web site in a new "Developer's Section" along w/patcher.el. (It's already on www.666.com/xemacs.) Modify patcher.el to allow sending a particular directory, not the whole tree, and perhaps even just a list of files.  put patches and CVS scripts under CVS.
27   6   2001-04-02 contact WISE and get a copy of their latest installer.  find my previous letter is sent requesting such a copy and use it again.
37   6   2001-04-02 file dialog box doesn't work too obviously for selecting directories. need to fix.  there's a mail message somewhere suggesting how to fix this.  find it; also ask around again.
48   6   2001-04-02 get my old windows machine fixed -- probably just power-supply breakage
49   6   2001-04-02 transfer second [unused] hard disk from old windows machine into primary machine, use to hold sound files, graphics files, movies, and other large, compressed stuff [e.g. the windows2000 install disk] that is generally more replaceable than normal data and takes a lot of space; hence it's backed up separately and less often.
50   6   2001-04-04 investigate igrep.  see how it works -- can it replace my simple grep-all-files?  perhaps i can merge my functionality into igrep?
51   6   2001-04-04 figure out if there is a way to permanently remap the bracket/brace etc. keys to implement the same paren-switching scheme i use in init.el, but for all apps
52   6   2001-04-04 create query-replace-across-files -- takes a wildcard [or regexp?] -- need wildcard-to-regexp, certainly available somewhere, e.g. recent FSF's -- also need a query-replace-across-files-continue; much of this functionality already exists in tags-query-replace and tags-loop-continue, but this method is rather bogus -- i want to be able to specify the files myself, and not depend on tag files, because [a] the tag files may not yet be created, [b] i don't want to depend on what's in the tag files, e.g. they often list multiple files from different workspaces and you will end up searching and replacing over files in other workspaces, which you *definitely* don't want!, [c] i want something more general that works over all types of files, e.g. web pages, where there is no tag support provided.  does this exist?  ask on the net.  in any case, it looks like i can write it easily by creating a wrapper around tags-query-replace that lets you choose the files (a regexp?) -- tags-query-replace has an option that lets you specify the files.
67   6   2001-04-08 

Fix up automatic adding of menu accelerators to be always unique.  Use the following algorithm:

  1. scan the current submenu and extract the accelerators into some sort of hash table, perhaps one that's always around to avoid excessive consing.
  2. check for duplicates; if so, resolve them by a possibly user-specifiable algorithm, whose default [and simplest] implementation is, for each set of duplicates, to allow the first duplicate to get the accelerator, and for each of the others, in turn, to have the first letter in their name that's not already assigned to an accelerator become that item's accelerator.  If there are no such letters, a character is prepended to the menu item string and becomes that item's accelerator.  The character is determined by scanning through the numbers 1 through 9, then 0, then a through z, looking for the first one not already taken as an accelerator.  If we run out of such characters, we just give up and let the item have its own accelerator.
  3. After handling items with explicitly specified accelerators, we handle the rest, using essentially the same algorithm as in the previous step.

Options to control the above process:

  • There should be a command that lets you check for duplicates among a submenu and suggest non-duplicative accelerators according to the above scheme.  That would make it much easier for someone who's manually adding accelerators: They could take the output and just tweak it a bit as they see fit, and voila they have nice accelerators.
  • Eventually, maybe, there should be other algorithms.  The algorithm above is essentially a "first-fit" type of algorithm; I could easily imagine a best-fit algorithm, which tried, e.g. to minimize the sum over all menu items processed of the number of letters between the accelerator and the first letter in the menu item, and/or tried to minimize the number of situations where no letter in the menu item is available and it's necessary to fall back on auto-generated numbers/letters.
  • The last phase, where auto-generated numbers and letters are added, should perhaps be controllable -- i.e. you specify under what circumstances it happens at all.  For example, Windows is smart enough in accelerator-shadowing situations to allow you to hit the accelerator more than once to access accelerator-shadowed menu items, even when the shadowing item is a submenu [even in the menu bar] -- in that case, the submenu does not automatically open, and you can either hit the accelerator key again to get successively shadowed items, or move around the submenu or menu bar with the arrow keys, or open the submenu with the down arrow [menu bars] or right arrow [submenus].  It's possible that the X support isn't quite so smart and doesn't handle the menu bar shadowing so well.  So we might want a flag, possibly even a specifier, to control whether this last phase happens. [#### And we should fix the X accelerator support, to boot!]

 

72   6   2001-04-09 Set up command to sort the rows in this list in XEmacs [using sort-regexp-fields or something of that sort]
96   6   2001-04-16 errors from file dialog box when attempting to save a buffer with a non-file name, e.g. a mail message with the name "mail to xemacs-patches" or something like that -- an invalid-file name error. [should we look the name up to get its text?]
105   6   2001-04-18  

Michael, I just noticed something -- create-compatibility-dot-emacs always sets the init-file and custom-file to the .el versions, not the .elc ones even if they exist. Is this intentional?

 I also think that the code that looks for init.elc and init.el should check to make sure the .elc file is up-to-date. If not, it should load the .el file instead and issue a prominent warning about the situation. Otherwise, many people will doubtlessly get bitten by changing their .el file, forgetting to recompile, and wondering why nothing is happening!

 Same would go for custom.el except that presumably custom.elc is ignored, right? [If so, and if custom.elc is present, a warning should be issued about this.]

 Finally, if you have compiled init.el, user-init-file will currently be set to ~/.xemacs/init.elc. I think this is a definite mistake -- lots of code will undoubtedly assume that it can edit user-init-file, not realizing that the `c' has to be chopped off.

e.g. the current code in menubar-items:

       ["Edit I%_nit File"
       ;; #### there should be something that holds the name that the init
       ;; file should be created as, when it's not present.
       (progn (find-file (or user-init-file "~/.xemacs/init.el"))
              (or (eq major-mode 'emacs-lisp-mode)
                  (emacs-lisp-mode)))]
i also think we need another variable, as this comment indicates.
125   6   2001-04-23 change the minibuffer "kludgey/smart filename handling" so it's triggered by a mouse-track handler rather than by binding button2.
132   6   2001-04-23 when you attempt to bring up the windows file dialog box and the current buffer does not have a file name [e.g. a mail buffer], you get: Dialog box error: "Creating file-dialog-box", "FNERR_INVALIDFILENAME".  Fix this!!!
133   6   2001-04-23 implement the control window for patcher, as mentioned in the comments.  use widget-create and such to create the widgets.  extend the activation mechanism to have different styles [mentioned above somewhere], and provide functions so that a mouse-track hook can query to see if it was invoked in such a way as to be an activation.  it needs to pass in an activation style as well -- presumably each package should have a variable that controls the activation style for that package, and should choose a reasonable default.  that way, users who want to change the buttons that do activation don't in general need to modify the style->button combination mapping, but change which style a package uses.  a more lenient windows-ish "mode", for example, is really just a series of settings of activation styles.  anyway, modify the widget code to use mouse-track, and have it check the button that invoked it using the activation query, and its default activation style should be set to include button1 click. [on the other hand, this might want to be overridable, e.g. so you could have a patcher-activation-style that was different.  let me think how to do this.  don't need to worry at first.].  then we can easily create the patcher control window. 
135   6   2001-04-23  edit-kbd-macro doesn't correctly handle misc-user-events in the macro. [it just ignores them!]
148   6   2001-04-30 fixes to patcher: [1] make sure there's an option to include the changelogs, or the subject, or both in the log message.  [2] in the subject, when you use patcher-mail-subproject, the subject should list the subproject files that you specified.
75   5   2001-04-10 change mouse-track-cleanup-hook so it's no longer just a normal hook, but passes in the down event, so that the cleanup hook has a way of associating info with the event through the use of a weak hash table, so it knows what to clean up; it should do some nastiness so that existing no-argument hooks continue to work, yuck.  consider fixing the new stuff i put in about.el to use it.
21   5   2001-04-02 implement "mouse-activation" mechanism throughout core: info, completion, custom edit, M-x occur, M-x apropos, finder, hyper-apropos, buff-menu; plus various packages.
26   5   2001-04-02 locate my voice file to sandy describing FAQ improvements and listen to it and fix up the FAQ appropriately.  there are two files, and sandy may already have done one of them.
28   5   2001-04-02  Filling commands should be added to the Edit menu. These should include
  • Edit -> Fill -> Fill Paragraph or Region,
  • Fill and Full-Justify Paragraph or Region
  • Fill and Justify Paragraph or Region As Set
  • Set Justification for Paragraph or Region -> Left
  • Right
  • Full
  • Center
  • None
32   5   2001-04-02 also add a difficulty factor.
34   5   2001-04-02 Info should have toolbar buttons for "Back", "Forward", and "Top".  Possibly borrow the back and forward (i.e. back and forward in the history, not the hierarchy) buttons from ediff, where there is one button with two curved arrows. we could split this up into two buttons, with arrows curving back and forward.
54   5   2001-04-04 rewrite M-x grep to not depend on external programs `grep' or `find'.  These may not exist under Windows, and all the functionality is easily available under XEmacs.
58   5   2001-04-05 query-replace{-regexp} should restrict to region if active.
60   5   2001-04-05 add "Reselect Region" to the Edit menu
68   5   2001-04-08  Add my behavior.el and behavior-defs.el into the standard distribution.
76   5   2001-04-10 consider rewriting the mouse-handling stuff in wid-edit.el to use mouse-track.  this also can help flush out any weaknesses in the mouse-track scheme [as it already has!].
89   5   2001-04-14 bug: events are getting directly dispatched [in call to mswindows_pump_outstanding_events] by XEmacs as a result of using the scrollbar.  there are various places, in fact, where the window procedure directly does something.  this should never happen -- the window procedure should either just return events, or queue up eval events or the like to actually execute the appropriate hooks or do any other required functionality.  i actually got a crash because of this, and certainly lots of other weird behavior can ensue.
93   5   2001-04-15 copy latest etags.c from Francesco and put into distribution
94   5   2001-04-15 Investigate Jan's 2001-04-02 disabling of dialog box titles -- fix it right.
97   5   2001-04-16 add a standard set of always-available faces -- one for hyperlinks, one for specific colors [red, green, blue, yellow], one for headlines, etc.
103   5   2001-04-18 if bytecomp or bytecomp-optimize is newer than the .elc version, when building we need to notice this and compile these two by loading the .el versions of these files; then we load the compiled versions and proceed as normal.
104   5   2001-04-18 if auto-autoloads is newer than the .elc version, we need to load the .el version.  when building, we need to do the same.
114   5  

i just read the docs, and the above behavior is exactly as documented. the bug is in our code, which apparently has never worked right.  the solution:

  • drain_X_queue[] has a bug in it. it should read
      while (XEventsQueued (display, QueuedAfterReading))
        XtAppProcessEvent (Xt_app_con, XtIMXEvent);
    
    NOT:
      while (XtAppPending (Xt_app_con) & XtIMXEvent)
        XtAppProcessEvent (Xt_app_con, XtIMXEvent);
    
    this also alleviates the problem mentioned in
      /* XtAppPending() can be super-slow, esp. over a network connection. ... */
    
  •  change x_check_for_quit_char:
          x_check_for_quit_char (Display *display)
          {
            drain_X_queue();
            scan_dispatch_queue_for_a_C_g_event_setting_Vquit_flag_if_appropriate();
          }
    
    where the latter function does as named, and can be closely modelled on emacs_mswindows_quit_p(). (WARNING, its handling of critical-quit i.e. C-S-g is broken. make sure your version works.)
128   5   2001-04-23 hitting the "application menu" key causes error: popup-mode-menu must be bound to mouse or misc-user event.  fix this.
147   5   2001-04-30 expand either save-some-buffers or save-buffers-exit-emacs so that it will notice changes  made using custom that haven't been saved, and offer to save them for you.
12   4   2001-04-02 go through my notes and collect up the to-do's and add them to the web page
17   4   2001-04-02 cc-mode change: finish, send off again, make sure legal papers get signed, etc.
18   4   2001-04-02 EFS change: what's the status?  need to add changelog to the patch and send it once more to michael sperber, this time praying him to actually do something!  [it's located in save-patches-out]
19   4   2001-04-02 big Mule merging: finish up merging, get it to compile and run, make it work, check it into branch, then sit down and figure out plan for getting it merged in.
22   4   2001-04-02 make a "Windows" global mode that sets various parameters to make XEmacs more Windows-y in interface, even include CUA mode that switches to standard keyboard.  [someone already implemented this -- ask on the net and review mail archives!]
30   4   2001-04-02 Fix Windows kbd code so that it correctly reports keypad slash as kp-divide, not just /. this appears to be a bug in Windows: it reports the kp-divide as a regular divide key (presumably with the extended bit set!), rather than as VK_DIVIDE. to fix this, modify the key-down handler in the window procedure, down in the area that handles ASCII keystrokes, to remember the modifier state before removing the shift key and then to check specially for a '/' with the extended bit set. if so, put the remembered modifiers onto it and call it kp-divide.
35   4   2001-04-02

byte-compilation warnings should have a line number by them so that next-error and previous-error can be set up to work properly. (There is a line number there now, but it is not very accurate.) At least two improvements could be made:

  1. unresolved functions are not reported till the end of the file, but the line number where the function was first encountered (or perhaps, all the line numbers) should be stored along with the function name, to be output later.
  2. the compiler reads a whole defun at a time, so currently our line numbers end up being always at the end of the defun. to fix this, probably the best way is to provide a new interface to `read' and friends that takes a hash-table on input and stores in it pointers to conses, vectors, and strings as keys and the corresponding buffer character position as values. even better, for conses and vectors, the value should contain a cons of the buffer position of the start of the sequence and another cons or vector (as appropriate), each of whose elements contains a buffer position indicating the position of the start of the appropriate element in the cons or vector being referred to. that way, the position of symbols, numbers, and other non-unique Lisp objects can be found as well.
45   4   2001-04-02 extend the activation mechanism to include different activation "styles". In particular, there should be at least three -- one that always includes button1 single-click (some hypertext-type modes), one that never includes it (grep and dired buffers, where the whole line is active), and one that can optionally include it (completion buffers, etc.) create a (normally local) variable for the current buffer that specifies the activation style. this also means we have to modify more code to actually use this mechanism! do this for info, for example.
46   4   2001-04-02 hyper-apropos should sort functions presented into up to 3 categories: user, non-user with documentation, non-user without documentation. there should be an option to control how many categories are separated out.
47   4   2001-04-02 integrate my hypertext extensions to help.el into hyper-apropos
56   4   2001-04-05 change M-k to do kill-entire-line and move kill-sentence to M-shift-k
61   4   2001-04-05 Add Tabify/Untabify to Cmds [look around, is it already there?]
66   4   2001-04-05 should FSF's elisp-intro be added to XEmacs?
70   4   2001-04-08  Custom's edit-faces mechanism needs to be improved to handle specifiers properly.  For example, how do I change the settings for MS printers???
85   4   2001-04-11 separate out misc-user event into different types -- one for scrollbar, one for menu, one for dialog stuff [maybe?], etc.  create one more type, user-eval events, which are like eval events but are treated as user events.  everything that uses misc-user events just to get things executed at some synchronized point in time can use them, and Lisp code should be able to enqueue these events, too.
98   4   2001-04-16 add a gamma correction factor, perhaps a specifier, to let you deal with mswindows-versus-x[-versus-mac?] differences in how the RGB numbers are interpreted.
120   4   2001-04-21 write hyper-apropos-documentation, a replacement for apropos-documentation, and use it in C-x C-a.
123   4   2001-04-23 look into changing region-beginning, region-end to signal an error when the region isn't active, like in FSF.  look into importing the FSF variable mark-even-if-inactive.
124   4   2001-04-23 look into making the zmacs region per-buffer, instead of their being only one. [potentially hard]
126   4   2001-04-23 consider changing the default binding of button3 to mouse-track also.
130   4   2001-04-23 in overstrike mode, delete should *not* just delete a character, but should space over it.
134   4   2001-04-23 custom SHOULD NOT BE LOADING LISP FILES FROM INSIDE A MENUBAR HOOK. instead, the process that generates custom-load.el should snarf the defcustoms as well as the defgroups, so that there's no need to load the actual files to get at the defcustoms.
138   4   2001-04-26  rename file-coding.c to coding.c or coding-system.c
145   4   2001-04-30  when you visit a hyper-apropos buffer [which sets truncate-lines], and then scroll with the horizontal scrollbar, you get an extremely annoying "jumping" effect.  it's caused by the fact that the truncate-lines glyph is slightly smaller than the default font, and so when you have a line consisting only of that glyph, the line is smaller than the default font, even though in all other cases [totally blank line, line with text on it], the line is the default font size.  i think we want another glyph property such as `minimum-height', whose value can be a face, a font element, or a number.  we also want a similar extent property.  that way you can force all lines to come out the same height.
146   3.5   2001-04-30 expand save-some-buffers so that it can take an arbitrary list of buffers, and offer to save them, with none of the extra crap [e.g. saving abbrevs and such].
25   3   2001-04-02 finish up my old-working ws w/separation of stderr/stdout in processes and a completely redone call-lisp-or-c-with-error-trapping functionality.  at least [a] get this later functionality merged in and/or [b] put the whole code on a branch so others can work w/it. [need a web page describing how to sync up the branch w/recent developments.]
29   3   2001-04-02 Modeline should have more abstraction layers on it to make it easier to rearrange the positions of the various parts. Line and column display should be changed as in sample.emacs -- and encapsulated in its own variable, of course. Code in coding.el that munges with the modeline should be merged into the standard modeline definition in modeline.el.
36   3   2001-04-02 find-function, etc. should push the current location onto the tag stack.
43   3   2001-04-02 generalize x-keysym-on-keyboard-p to keysym-on-keyboard-p, and use this to filter out bogus bindings returned from `where-is-internal'.
59   3   2001-04-05 in place of my M-n/M-S-n functions in sample.init.el, consider using C-TAB/C-S-TAB and move C-TAB to S-TAB [or leave S-TAB alone and use S-TAB, S-C-TAB], which are like the VC++ versions -- as long as the modifiers are held down, cycle through buffers, then just move the selected buffer to the front.  one version does all buffers, the other only within the same mode. [also need to move S-TAB elsewhere.]
62   3   2001-04-05 add option to move point to buffer under mouse when scrolling using the mouse wheel
87   3   2001-04-11 add some code to automatically turn the mouse pointer into a busy [hourglass] shape when there has been a certain length of time [e.g. 1 second] since the last time that xemacs was ready for input.  see architecting-xemacs for a fuller description of this.
117   3   implement a way of doing `next-error', `previous-error' over the result of byte-recompile-directory.  you'd have to extend compile.el so that instead of just a regexp, you could specify a function that would find the file and the line number [by looking backwards in the compile output for the lines specifying the function and the file, then searching in the file for the function and, if a variable or function was specified, looking for that name].
131   3   2001-04-23 consider writing an elisp command to generate dashed lines of a given length with some given text centered in it.
143   3     set up a way of doing "break-on-value-change".
38   2   2001-04-02 in the minibuffer, it would be nice if there were a keystroke to yank words and lines from where point was before entering the minibuffer -- similar to C-w and C-y in isearch.
39   2   2001-04-02 dynamic abbrev should be extended to work like completer -- if I type g-d-f and then M-/, I should get (e.g.) globally-declare-fboundp. for that matter, this should work with just gdf, too!
41   2   2001-04-02 default-dir sets up bogus arg declarations for functions such as insert-file, etc. they need to match the actual arg declarations or lots of byte-compilation warnings ensue.
42   2   2001-04-02

fix lazy-lock so that if you open a new file, go to the bottom, and hold down page-up, you actually see screens go by instead of just freezing. the problem here has to do with limitations of the input preemption mechanism. it goes like this:

  1. user holds down page-up. first page-up received.
  2. normally, redisplay is fast, faster than the delay between repeated keys.
  3. but with lazy-lock enabled, it will be called first from pre-idle-hook.
  4. the call to lazy-lock goes through because no more page-ups have been received yet.
  5. lazy-lock fontifies the page, which takes so long that one or more repeated keys are received.
  6. redisplay sees the received keys and preempts itself.
  7. the received keys are rapidly handled, paging up but preempting both lazy-lock and redisplay.
  8. when the last buffered key is processed, the cycle starts again:
  9. lazy-lock is called, takes its time fontifying, and redisplay is preempted again.

one solution would be to internally track keys going up and down in the event code, and provide some external access to this. if a non-modifier key is down, we can use this to pre-empt lazy lock but not redisplay. we then just have to make sure that pre-idle hook is called when the last non-modifier key goes up, or perhaps after a certain amount of time of no activity (e.g. 1/8 of a second, well more than the repeat delay) so that the user doesn't see totally weird results if they're holding a key down that isn't doing anything, or if something gets messed up in the internal keyboard state and a key gets reported down that isn't really.

44   2   2001-04-02 provide a mechanism to specify a "preferred" binding, e.g. a function `define-preferred-key' that parallels `define-key' but marks this particular binding as preferred. the preferred binding is the first one returned by `where-is-internal' and thus shows up as the binding in menus, \\[] specifications in doc strings as replaced by `substitute-command-keys', etc. this obsoletes many of the grody hacks with `advertised-foo' and `deprecated-bar'. NOTE: i thought up an alternative interface involving simply (put 'command 'preferred-key-sequence "sequence"), but that fails because it doesn't let you specify a preferred prefix key when there is more than one -- e.g. you want C-h not BS as the help prefix. (and besides, it's ugly and duplicative of information, and may lead to "hard-coding" of bindings.)
63   2   2001-04-05 rectangle mousing -- on by default; when you use Alt + mousing, you get rectangle, and standard commands should do rectangle stuff instead. [Also, menu should change accordingly!]
65   2   2001-04-05 file "xemacs-package-info" containing directives to apply to a directory containg a package or packages.  directives:
include-if Lisp-Expr
ignore dir completely if Lisp-Expr is false. when ignored:
  • not on load path
  • no autoloads or custom loads
include-file-if file Lisp-Expr
applies to one file. when ignored:
  • no autoloads or custom loads for file
  • not byte-compiled
  • ignored by XEmacs packages that recognize the package-info file
if-supported Command
...
endif
do stuff in between only if Command is recognized in this file format.
77   2   2001-04-10 think about the long-term possibility of moving the mouse-track hooks to keymap entries -- i.e. have virtual keymap entries for mouse-down, mouse-up, mouse-click, etc.  each should be written as (interactive "e"), and any excess info currently passed to the hooks can be embedded into the event object.  unfortunately this seems to eliminate the flexibility of having a hook decide whether it should allow other hooks to run or not ...  need to think about sample uses of this, and whether the increased flexibility coming from being able to place keymap entries in extents, glyphs, etc. obviates this.  possibly we can allow the called functions to throw somewhere if they want to continue processing [or maybe abort processing, we need to think which is more likely]?

but maybe that whole scheme is way ad-hoc and really stretching the whole concept of keymaps.  instead maybe we just want to keep the existing scheme, and conceivably allow for extent and glyph properties specifying mouse-track hooks, which are handled preferentially to the global or buffer-local properties.  i think hrvoje's main complaint was just about not knowing what hooks are actually run. [for that matter, will describe-key correctly pick up any extent-local, glyph-local, etc. keymaps if you click on one of them??] the way to fix that would be [1] make sure that describe-key does correctly pick up these extent-local etc. keymaps; [2] for mouse-track in particular, have describe-key list the values of the hooks applicable to where the mouse was clicked.  the easiest and cleanest way to do this would be to have some sort of property on the `mouse-track' symbol, maybe `describe-key-documentation', that is a function that allows mouse-track to specify dynamic documentation.  whenever describe-key comes across such a special function, it calls it, with the buffer to put the data into in `standard-output' and the function's actual doc string.  there should be an obvious function [if there's not already] which outputs exactly what describe-key normally outputs, and in addition the function can describe the relevant hooks or do whatever the hell it wants. 

118   2   improve regexp syntax to include Perl-like modifiers [e.g. to specify case-insensitivity, to make dot include all chars including the newline, etc], which can be turned on and off in a regexp using the standard perl syntax. [??? (?:i)]
137   2   2001-04-26   migrate xemacs-base, xemacs-devel back inside the core, where they always have belonged.
144   2      there appear to be no obvious primitives for returning the beginning/end of the region and signalling an error when the region is not active.  look into this.  
64   0   2001-04-05 always-accurate font-lock syntactic phase:
  • only needs to recompute from beginning of changed segment, as far as end change, maybe farther
  • when new-computed syntax matches old one, we can almost always stop. [#### when not?] seems if we find a whole line that matches, we can always stop.  perhaps "always" if we maintain a bit of additional state on the extent about what chars caused the state?
  • in case of double quote, we might end up recomputing to the end [not in C but in Lisp]; /* in C might also cause excessive recomputing.  so only go to window end and a ways past it [some heuristic], then remember that the rest may be inaccurate.  then, eventually when closing match is inserted, everything be noticed as accurate. [this requires dealing with the possibility of window movement -- needs a lazy-lock type driving program]
150        
151        
152        
153        
154        
155        
156        
157        
158        
159        
160        
161        
162        
163        
164        
165        
166        
167        
168        
169        
170        
171        
172        
173        
174        
175        
176        
177        
178        
179        
180        
181        
182        
183        
184        
185        
186        
187        
188        
189        
190        
191        
192        
193        
194        
195        
196        
197        
198        
199        



Done:

# Type Pri Dif Date Description
1   2001-04-02 create a combined priority scheme for both long-term and short-term projects, combining the scheme in TODO.txt w/my personal one
2   2001-04-02 my "last-minute-changes" -- need to be committed.
3   10   2001-04-02 add priority to all to-do entries
9   8   2001-04-02 apply office updates from officeupdate.microsoft.com
88   8   2001-04-13 install VC 6 service pack 5.
102   9   2001-04-16 back up my machine.
71   7   2001-04-09 Set up procedure for conveniently moving between using Front Page and XEmacs to work with this list.
99   10   2001-04-16 continue fixing up NEWS.
79   9.5   2001-04-10 finish up about and news changes
81   9.5   2001-04-10 sort entries in this table by priority -- set up something with use sort-regexp-fields
100   9   2001-04-16 copy fixup3 to fixup9 from latest.
115   9     changes to xemacs-package-src: Local.rules.template, oa/edit-utils/func-menu.el

verify that make install works from both the top level and a subdir such as oa/edit-utils.  send first file change to steve y, check in the second.

84   10   2001-04-11 working on yoshiki's problem -- leave the first check alone for misc-user event, but put a comment saying this entire clause should go; the call to reset_current_events also occurs down below as part of reset_this_command_keys.  in call to reset_this_command_keys, check there for misc-user-event; if not, do the full call, if so, do everything but reset current events.  put a comment about how this really needs to be only for scrollbars, and they need to be separated out of misc-user events.
101   9   2001-04-16 install latest cygwin stuff, recently downloaded.
121   10     finish up changelog of working.  added: tab menu items,  callint doc improvements, a reselect-region menu item, command-hyper-apropos, bound to C-h A.
107   8   2001-04-18  who's maintaining the patch queue? [i.e. tracking patches]
142   7   2001-04-26  figure out what's going on wrt rectangle-mousing not working.
90   6   2001-04-14 fix sort-regexp-fields so that the interactive spec records the region before, not after, prompting for values, so that you can switch to a different buffer and copy/paste text [which deselects the region] without problem.  also, `interactive' ought to describe, for each type of spec, what the equivalent lisp code is.
141   10   2001-04-26  prepare a plan for what i'm going to do--what steps, what order.  keep the plan and this priority list printed out on a regular basis and posted around my work area.
73 10 2001-04-10 write back to stephen concerning size_t -> int change
74 10 2001-04-10 need to write to adrian and stephen t to get about.el info from them
129   10   2001-04-23 critical-quit change doesn't appear to work -- test it; changes to patcher: now inserts a "this patch has been committed", and removes the commit output window and buries it when mail has been sent. 
         
           
           
           
           
           
           
           

Ben Wing