Okami: beta test version 2.1B-22
Beta test version 2.1B-22
Important notice:
Always use Okami programs from the same suite. Do not mix modules
of different versions. With each update of this package, the modules have
become incompatible with those of older versions.
Changes
- Under a multitasking OS, the auxiliary programs now signal to
the GEM module to close critical windows plus onews.def before they
start their business, and they signal to reopen onews.def plus the
Groups window after they're finished.
- There was a bug with the setting of "winsize" in o.inf. If the window size was bigger than the screen size, Okami didn't correct it, with bombing consequences. That's been fixed. But then I realized that "rows" doesn't make
sense with proportional fonts, so I changed the setting of "winsize"
to pixels.
- Okami now calculates correct window sizes for all window layouts.
Especially under MagiC 6.x and (I believe) on Falcons, the last line in windows was only shown partially.
- Fuller button added to message list windows.
- Unix style paths may be used in o.inf. Instead of "f:\okami",
either "f:/okami", or "/dev/f/okami" can be used. Instead of "c:\tmp", either "c:/tmp", or "/dev/c/tmp", or "/tmp" ("/" being the root
directory, which is set to "c:\") can be used.
- Header line "Bcc" added to write dialogue box. "Bcc" means "blind carbon copy": it isn't written in the header, so that the recipient doesn't know to whom copies of the message are sent.
- Editable line "Quote prefix" added to the Quote dialogue window for changing the quote prefix on the fly.
- "Global mask" added to Message Mask dialogue box. The Message
Mask dialogue box now always pops up when called.
- When quoting a message, uuencoded attachments are excluded.
- Base64 encoded text messages and text parts of multiparts are
decoded upon import.
- Base64 encoding for messages. Extra pop-up button in write
dialogue box for transfer encoding. Extra pop-up buttons for transfer
encoding and character set in MIME dialogue box. Variable
"quoted.printable" in o.inf changed into "transfer.encoding". The
variable takes four possible values: 0 = 7bit, 1 = 8bit, 2 =
quoted-printable, 3 = base64. 1 is default and only values 2 and 3
make any real sense.
- New variables "browser" and "ftp.prg" in o.inf. These are the
paths to the browser and ftp program respectively. If one program is
used for both, both variables still have to be filled in. Clicking on
an ftp:// address in an email message will pop up the same dialogue
box, but will call the ftp program specified in variable "ftp.prg". If
no browser is specified, the path set in the environment variable
"BROWSER" will still be used.
- Extra pop-up button in write dialogue box for determining when
the signature will be appended to the outgoing message.
- The signature and quote-format definition files ("sigs.inf"
and "quotefmt.inf") are now determined per user. For each user, Okami
looks for a file of the generic form "user.sig" and "user.qfm". They
must be in the directories specified in the variables "sigfiles" and
"quote.format.files" respectively. Do not leave these variables empty,
even if the definition files are in the same directory as the binary
in question.
Mail folders can be specified by their group names only in the
signature and quote format definition files. So, whereas formerly, in
case of a mail folder "Mail.user.name", one needed to configure a line
of the form "Mail.user|address-of@mail.list" in both definition files,
now the group name "Mail.user.name" suffices.
- Variable "default.cc.mail" in o.inf changed into "default.cc".
New variable "default.bcc" for the Bcc field in headers.
- Log level values changed: -1 = no logging, 0 = normal logging,
1 = debug, and 2 = trouble. This is done in order to make toggling
possible with the "set" command.
- Support for all iso-8859-x character sets, plus koi8-r
(Russian). Full support requires the creation of a character set
definition file with the location of the language-specific characters
in the set. There's a special program for this ("charset.ttp"), and a
character set configuration file. See for further documentation the
man page and the sample charset.inf file in the beta distribution.
- Two new menu items: "Load setup" and "Save setup". They allow
for loading and saving all the setup information contained in o.inf.
Since loading a new setup means that even the path to the base
("news") directory could be different, alle critical windows and all
groups are closed first, and onews.def is saved. Okami then reloads
the definition files and opens the Group window. If an existing
configuration file is selected with "Save setup", it will be
"updated", meaning that only the variables already contained in the
file will be rewritten and that comments are preserved.
The corresponding commands to these menu items are "load-setup" and
"save-setup", which both take one argument: the path to a file. If
called without an argument, the file-selector box will appear.
- Messages with unsupported character sets are not converted.
- Two new menu items under "Setup": "General" and "Message". They
open dialogue boxes for setting general and message specific
parameters ("variables" in o.inf). More are to follow.
- iso-8859-15 support added. Or not really "added": messages
with iso-8859-15 are treated as if they are written in iso-8859-1.
iso-8859-15 largely is an update of iso-8859-1, with minor changes,
the most important being the introduction of the Euro sign, which
replaces the international currency symbol. 91.6% of the cases are
covered with the current character set-up. The support is only
"passive", i.e. messages with iso-8859-15 can be read, but iso-8859-15
cannot be used as character set for outgoing messages.
- New menu item: "Message Sort"; only the sort criteria for the
current group window are changed.
- Outbound group isn't closed anymore before writing a new
message. Instead, the group window is updated and resized.
- If the first unread message in a group is part of a sequence of
messages with the same subject, the first in the sequence will be the
top line in a message list window, if the position of the cursor
allows it.
- New menu item "User data" under "Setup", in which to specify user
specific data that will be emplyed for the header of messages. The fields
"Site" and "Domain" must be filled in, or Okami will refuse
to close the box. If either one of these variables are left empty in o.inf,
Okami will automatically open the window at startup.
The command for opening this box is "userdata-setup".
- Messages, or parts of multiparts, in HTML format can be
displayed by browser.
- All GEM programs running in parallel under a multitasking OS
are now assumed to understand the VA_START protocoll.
- oimport and oexport run in the same mode as the GEM module, if they
are started from within the GEM module.
- New configuration variable: "always.show". If the type of a
message, or of a part of a MIME multipart message, is "image",
"text/html", or "audio", Okami normally lets the user choose
to just show the undecoded message or part, or display it as such.
This variable allows for automatic display of these types.
The types are displayed by external programs. For HTML documents, the
default browser is used, and for audio types there is a new path
varibale in o.inf: "audio.prg" (but the actual playing of sounds is not
yet implemented). All programs are assumed to understand
the VA_START protocoll.
- Menu items are disabled if they are not applicable and text
in menu items changes according to context.
- Two new format parameters for "msgmenu.fmt": "%h" for
displaying thread information (arrows), and "%l" for number of
comments to the message (same as in "msg.info").
- Active newsgroup must be listed (wildcards permitted) in a
file "active.dat" in the news directory. Variable "active=" removed
from o.inf.
- New menu item "Format Strings" under "Setup" for changing format
strings on the fly. Changes relative to windows are effected immediately. The
corresponding command is "fmt-setup".
- New parameter in global setup box: Window size.
- Name of variable "msg.titel" in o.inf changed into "msg.title".
- Menu item "Write Reply" removed. The menu item "Write message" (F10) now
changes according to context in "Write mail", "Write news", "Write reply",
"Write followup", and "Rewrite message" (with messages of the groups Outbound
and Outbound.archive). When news is not explicitly applicable, mail is now
the default. You can still "force" mail in a news context by pressing F9.
- Insertion of a single address in the "Reply-To:" field from the address book.
- Under a multitasking OS, the editor is now run in parallel. (Please report
any problems with this.)
- New menu item under "Setup": "Paths", for setting internal
paths and the paths to external programs. The corresponding command is
`set-path'. Called without an argument, the dialogue box is displayed,
else the path specified in the argument(s) is set. The argument(s)
must have the form "name=path", where "name" is the same as the one
used in o.inf, and "path" is the path. Whitespace right and left of
`=' is allowed. Example: `setpath newsdir=j:\okami\news'.
- Working directories of external programs need no longer be specified in
o.inf.
- Added full support for all character sets in the iso-8859
range (iso-8859-1 through iso-8859-15). In addition, "passive" support
is added for the following (non-standard) character sets:
windows-1252, windows-1250, kamenicka, windows-1257, koi8-r,
windows-1251, windows-1253, and windows-1254. Messages with these
character sets can be correctly decoded, but no messages with these
character sets can be written.
- New menu item under "Setup": "Arrays", for setting arrays of
configuration parameters. The corresponding command is `set-array'.
Called without an argument, the dialogue box is displayed, else the
string in the argument is added to the array. The argument(s) must
have the form "name=string", where "name" is the same as the name of
the array in o.inf, and "string" is the string to be added. Whitespace
right and left of `=' is allowed.
Example: `set-array unsubscribe=comp.sys.amiga'.
In interactive mode, i.e. with the dialogue box, the full range of
each preset array is shown, with a minimum of eight lines. Individual
strings can be edited, and empty strings can be filled in and will be
added to the array. If there are no empty lines left, new strings can
be added by clicking on the "Add" button.
Alle changes will take effect immediately.
- New menu item under "Setup": "List effects", for setting text
effects in group and message list windows. The corresponding command
is `set-list-effect'. Called without an argument, the dialogue box is
displayed, else the text effect in the argument is set. The
argument(s) must have the form "name=string", where "name" must
correspond with the list text effect names in o.inf (eff.grp.nonew,
eff.grp.nounread, etc.) and "string" is the actual text effect to be
set (samen syntax as in o.inf). Both text style and color can be set
(see below for changes of these parameters in o.inf). Whitespace right
and left of `=' is allowed.
Example: `set-list-effect eff.msg.new=b 2'.
Alle changes will take effect immediately.
The syntax of these variables in o.inf has changed, to allow for
colors to be set as well. The style parameters "normal", "bold",
"italic", "underlined", and "light" must be curtailed to respectively
"n", "b", "i", "u", and "l", and they can be followed by a number from
1 to 15 inclusive, indicating the color. Exactly one space or one tab
is allowed between the style and color parameter.
See o.inf for further information.
- New variable in o.inf: `wrap', to set line length in messages
to a certain value. A value of 0 means `no wrap'. `Soft returns' are
respected, so that whole paragraphs can be reformatted. The wrap value
can be set on the fly in the Message dialogue box under `Setup'.
- Some complementary colours made the text in the menu bar
illegible. Text in menu bar is now always white.
- quote.binmode removed from o.inf.
- Font selection box reworked. Fonts and sizes are now displayed
as scrollable lists. Pop-up option "Global" means: set font for all
windows of current window type, and "Window" means: set font for
current window only. The corresponding command is `set-font'. If
called without an argument, the font selection box will appear, else
the font in the argument is set. Arguments have the form
"name=string", where "name" must correspond with the font variable
name in o.inf ("font.view" and "font.menu"), and "string" is the
actual font and size to be set (same syntax as in o.inf). Whitespace
right and left of `=' is allowed.
Example: `set-font font.view=14 Times New Roman'.
Alle changes will take effect immediately.
The variables to set fonts in o.inf have changed. "Small font" is out.
Only one font can be set for each type of window, and only two types
are currently allowed: "view windows", i.e. windows with the content
of messages, parts of multiparts, or external files, and "menu
windows", i.e. windows with group or message lists.
See o.inf for further details.
- Dialogue windows are now also operable when they're not
topped.
- Variable "nodesk" in o.inf changed into "owndesk". Set this
to 1 if you want Okami's own desktop (only advisable with older AES's
and monochrome monitors). Default is 0.
- Complete facelift of resource file.
- New variable in o.inf: `reformat', to reformat paragraphs in
messages if lines end in so-called `soft returns'. This variable only
makes sense if `wrap' is greater than 0. 1 is `on', 0 is `off'. Default
value is 0.
- Option `-m' (MIME header encoding) for oexport changed. The
option must now have an argument: 0 = no encoding, 1 = encoding).
- New option for oimport: `-x', for crosspost handling. The option
must have an argument: 0 = no crosspost handling, 1 = crosspost
handling.
- Values of `msgsort' in o.inf changed. Apart from the sort
criteria, the direction may also be specified. The `Sort message'
dialogue box has been changed accordingly. See o.inf for further details.
- New menu option: `Move Message', for moving messages to a
designated group. If the top window is a message window, that message
will be moved; if it is a group window, the message under the cursor
bar is moved. Messages can also be dragged from a group window to
another group window (also if it's iconified), or to a group in a
group list window. The message is immediately deleted from the message
base. The corresponding command is `move'; it takes one argument: the
name of the group the message must be moved to.
- Log files can be automatically cut. See o.inf.
- New menu option: `Delete Message'. The message will be moved
to group "junk". This group is expired according to the specifications
in oexpire.inf. If the window of group `junk' is iconified, it shows
the dustbin. All messages (also from the Outbound group) can be
deleted by dragging them to this dustbin. The corresponding command is
`rm'.
- Three new menu items under `Newsgroups': `Expire Groups',
`Expire Group', and `Remove Group'. `Expire Groups' means expire all
groups that match the regular expression given in the dialogue box
that pops up. For the two other items the following applies: If the
top window is a group window, that group will be expired. If the top
window is a group list window, the group that is selected will be
expired. In all other cases a dialogue box appears in which to fill
in the name of the group to be expired/removed. No confirmation is
requested.
The corresponding commands are `expire', `expiregrp', and `rmgrp'
respectively. They each take one argument. For `Expire Groups' the
argument is a regular expression for the groups to expire, where "all"
means all groups (and is thus equivalent to ".*"), and for the others
it is the name of the group to expire/remove.
- Expire routines reworked (they were very buggy). Item
`Expire' under `Access' restored. Clicking on this will expire all
groups and clear all `new' flags. Item `Expire Group' removed from
`Newsgroups'. Clicking on `Expire Groups' produces a dialogue box in
which two options can be set: `Clear new flags' and `Only killed
messages'. In the text field the name of the newsgroup(s) to be
expired must be filled in. This string will be evaluated as a regular
expression, so if only one group has to be expired, the full name of
the group, or a unique regular expression, can be used (so you really
don't need to type in the full name). An empry string will be
interpreted as `all' and `all' can indeed be used to expire all
groups.
Command `expiregrp' has been removed. The command `expire' can be
used with two options: `-k' and `-c', for `Clear new flags' and `Only
killed messages' respectively, followed by a regular expression for
the newsgroup(s) to be expired (just as you would do with
oexpire.ttp). Using the command `expire' without an argument will
pop-up the expire dialogue box.
- The drag-and-drop functions have been extended. Multiple messages (not
multiple groups or folders) can be selected by clicking on the
messages and at the same time holding one of the shift keys. During
scrolling, the shift key must also be held, or the selection will be
lost. Next, the messages can be dragged in the normal way. The
dragging must be started on one of the selected messages, or the
selection will, again, be lost. Holding the control key while dragging
means `copy' instead of `move'. In menu windows, one group at a time
can be dragged onto another group or a folder to move it (copy only
works if the target is another group).
Message flags can also be set for multiple selections of messages.
Select the messages you want to flag, then click on `Set Msg
Flags' in the menu, select the flag and click on OK, or use the
command `set-msg-flags' in the appropriate way (also works when you
have bound this to a key).
In the address book window, multiple addresses can be selected in the
same way. Drag the selection to the write dialogue box, and the
addresses will be copied to the `To:', `Cc', or `Bcc' field, depending
on where the cursor is (`To:' is default).
- Five new menu items: `New Fold', `Delete Fold', `Copy Group', `Move Group',
`Select All':
- New Fold: create a new fold (command: `new-fold [name]')
- Delete Fold: delete existing fold (command: `rmfold [name]')
- Copy Group: copy group to fold or other group (command: `cpgrp [name]')
- Move Group: move group to fold or other group (command: `mvgrp [name]')
- Select All: select all messages in a group window;
N.B.: only if you move a group to another group will you be asked for
confirmation, and with `Select All', only the `visible' messages are
selected, i.e. those that are not masked off by the current message mask.
- Import routine added to the GEM module. If variable `import.direct' is
set, Okami will start importing new news immediately. Formerly, this
was done without expiring first, but now there is a new variable in
o.inf: `expire.before.import'. Set to non-zero, this will cause Okami
to always expire first, without asking for confirmation.
- There were too many variables in o.inf pointing to separate info
files, whose names could be customized. In addition, the place of the
mailfolder info files was awkward. This has now changed. The info
files have fixed names or formats, and must be stored together in one
info directory. This is either the directory indicated by the variable
`infodir' in o.inf, or Okami's own directory (which may be set in the
environment variable "OKAMI"). Okami uses the following info files:
- keymap.inf
- oexpire.inf
- folds.inf
- groups.inf
- oaddr.inf
- language.inf
- charset.inf
- charset.def
- alias
- register.inf
Plus three types of files of the form `user.ext', where `ext' is an
extension indicative of its function:
- user.sig (signature info file)
- user.qfm (quote format info file)
- user.mfi (mailfolds info file)
- Okami stores its messages by default in single database files per
(pseudo-)newsgroup. This is done primarily to minimize waste of disk
space, but also to speed up the import and expire routines. The
disadvantage is that all messages in a newsgroup are lost when its
database file becomes corrupted. However, speed considerations aren't
that important anymore with modern processors, so that single message
databases become a viable option. Okami is capable of handling mixed
database types, so that single message files can be configured for
specific groups. Import to single message databases can be done by
using oimport.ttp with option `-b1', or by setting variable `smf' in
o.inf to 1. There can never be two different database types for the
same group, so if the group exists, new messages will always be
imported in the existing type.
- The result of this last change is that incoming messages from UUCP
(and tin!) must be stored in a separate news directory; the variable
in o.inf which points to its path is `uucp.newsdir'
- If measurements are mentioned in a message, you can click on them
and the metric converter will appear. Example: if someone says in a
message that something is `7 miles' (or `mls'), or weighs `7 lbs' (or
`lb', or `pounds') clicking on either the number or the noun will call
the metric dialogue box, in which the imperial units are converted to
metric ones (or vice versa).
- In case of an embedded multipart message, the right text part
is extracted for the quote function.
- Embedded multipart messages can now be shown in the GEM module.
(The multipart routine is still a hack, but I'm working on it!)
Bug fixes
- When following up to news messages with "Mail-Copy-To:"
headers, Okami also asked confirmation for sending a mail message when
the write dialogue box was already changed to "Mail".
- Okami didn't launch CAB correctly.
- There was a "ghost" row of buttons at the top of message
windows when "buttons=0" was set in o.inf, or if the row was unset in
the Set panel.
- If a pipe command in sigs.inf pointed to a non-existent
program, Okami crashed.
- Name and comment fields in edit address window couldn't be
edited.
- Format options %i and %I ("initials") in quote format strings
improved. Portions of the real name between quotes are ignored, so that
`Martin "Nightowl" Byttebier' doesn't become `M"B', or `Ma"nBy', but `MB',
or `MaBy'.
- Filenames on VFAT partitions under MiNT weren't handled correctly.
- In beta versions 2.1B-2 and 2.1B-3 the wrong character set
conversions were applied.
- Double-clicking on CC and Bcc field in write dialogue box
didn't call the address book.
- Okami didn't interpret some date formats in message headers
correctly.
- When clicking on "Search" or "Search again" without a window
opened, Okami crashed.
- If Okami was used to send (email) messages in batch mode,
onews.def wasn't updated and no signatures were added.
- Dialogue windows were not correctly iconified.
- When trying to login, or open a named group, etc. the dialogue
window wasn't topped under MagiC and Geneva.
- In the search dialogue window , "Ignore case" and "Window"
had the same shortcut [i].
- If news message had both a "Newsgroups:" and "To:" header, the
content of the "To:" header was shown in the "To:" line in the write
dialogue window, and stayed there after switching to mail.
- Wrong signature appended and wrong quote format used when
switching from news to mail.
- Setting global message sort criteria in Message Setup window
had no effect.
- If the Outbound group was contained in a fold and new messages were
written, the total count of the fold was wrongly calculated.
- Crossposted messages were only correctly decoded for the first
import group.
- Fixed a bug in the Mime header decoding routine.
- Parts of a multipart message couldn't be saved separately.
- If a part of a multipart message was shown as image, clicking on
"Next" didn't open the next part.
- If a message in Outbound was replied to, references were
zeroed.
- When rewriting, or resending, a mail message in the Outbound
archive group, the "To:" address wasn't shown in the write dialogue box.
- If the "Cc:" line in a header contained more than one address with real
names, only the last one was copied.
- Inserting addresses from the address book in the "To:", "Cc:", and "Bcc:"
header lines of the write dialogue box was erratic.
- Fixed a few bugs in the iconification routines.
- Fixed a bug in the active newsgroups routine.
- Editing of messages and external files wasn't possible
anymore, due to the fact that the editor was run in parallel. Editor
is now loaded again as overlay when editing messages or external
files.
- Fixed a (small) bug in the logging routine.
- Menu item F10 was "Write News/Followup" in mail archive group (must be
"Write Mail/Reply").
- oexpire created archive groups for mail folds.
- Hitting F10 in a mail folder opened the write dialogue box in
news mode.
- In the font selection box, incorrect sizes were displayed.
- With 32K colours or more, pop-up boxes made Okami crash.
- Window width of group and message list windows wasn't
calculated right with proportional fonts.
- Okami didn't copy the right file attributes when copying
files. This caused problems under TOS 4.04 (files couldn't be found).
- After viewing parts of a multipart, lines of the text in the
"head" message disappeared. This had to do with a bug in the
wrap/reformat function.
- If not enough memory was available to import large messages,
oimport sometimes returned a succes value, resulting in the source
file being deleted.
- If a menu window was scrolled in the background, the menu
cursor was drawn over the top window.
- When replying to a multipart message, lines in text part
were not wrapped.
- Text effects in address book window switched off.
- Clicking on the metric converter produced two bombs (bus
error).
- The msg count in the group window title bar was initially wrong.
- Fixed a bug in ofind.
- When expiring all messages from a group, the group couldn't
be removed.
- If all groups were removed, the group list window wasn't
properly updated and an "out of memory" message appeared.
- Mail messages were archived to a group "archive.Mail.user".
- Finally fixed the bug in the expire routines of the GEM module.
- Fixed bug in quote format routine.
- Fixed bug in setting of window title and info line.
- Fixed hidden bug in secundary library which caused occasional bombs.
- Word wrap caused bombs under certain circumstances.
- Combinations of Shift with Ctrl and Alt keys defined in
keymap.inf didn't work.
- Date format with two-digit year wasn't interpreted correctly.
- "To:" field was on the same line as "Return-Path:" field in the
header.
- Menu item "expire" didn't call the corresponding dialogue
box.