     
                        WHATISEA.TXT

         Discussion of Extended Attributes and SysMaint

Extended Attributes are added to directories and files to describe the
contents, use, association and many other aspects of the directory or
file. The Extended Attributes are not an actual part of the file, but
are associated with the file. For HPFS this Extended Attribute
information is kept in the Directory entry, for FAT the information
is kept in a separate file, since there is not enough room in the
directory. Refer to the OS/2 documentation for a more complete
discussion of Extended Attributes themselves.

One of the problems with OS/2 is that, while it makes extensive use
of Extended Attributes, it does not provide the user with the tools
necessary to deal with problems or give users the tools necessary to
understand them. While this is a problem for everyone, it is
especially a problem for developers who might want to take advantage
of Extended Attributes in their applications.

SysMaint is designed to all the user to look at the Extended
Attributes that are present on their system, edit them, if necessary,
and do a number of different kinds of maintenance functions. However,
before discussing how SysMaint handles Extended Attributes, it is
necessary to be sure that everyone understands a little about how
Extended Attributes are structured. The following discussion assumes
that the reader is already familiar with IniMaint, the structure of
the IniMaint windows and how IniMaint displays and maintains INI
Files.

The is a parallel between how INI files are structured and how
Extended Attributes are structured so SysMaint uses most of the
IniMaint code to handle the Extended Attributes. INI Files are
organized into Applications that have one or more Keys and each Key
has a Value assigned to that Key. Extended Attributes are associated
with a Directory or a File, each of which can have more than one
Extended Attribute and each Extended Attribute has a Name and an
associated value. Therefore, SysMaint will display the names of the
Directories or Files in the Application Window, the Names of the
Extended Attributes in the Key Name Window and the Extended Attribute
Value in the Key Value Window.

The approach above works very well for Simple Extended Attributes.
However, the parallel between INI Files and Extended Attributes
breaks down when it encounters a Multiple Value Extended Attribute,
so some modifications are needed to handle this situation.

There are three general types of Extended Attributes as far as
SysMaint is concerned:

1. Extended Attributes that SysMaint does not understand and will
display just as they are found.

2. Simple Extended Attributes that use the type identifiers that are
documented in the OS/2 documentation. These are Extended Attributes
that closely parallel the INI File structure and are displayed that
way.

3. Multiple Extended Attributes, which are Extended Attributes that
contain other Extended Attributes. These are the Extended Attributes
that do not closely parallel the INI File structure.

There were two different ways that SysMaint could handle the Multiple
Value Extended Attributes:

1. They could simply be identified as Multiple Value and the entire
Extended Attribute could be placed in the Key Value Window.

2. The structure of the Multiple Value Extended Attribute could be
decoded and displayed in the windows in a decoded form.

Since the decoding of the Multiple Value Extended Attributes is not a
trivial task, especially since a Multiple Value Extended Attribute
can contain other Multiple Value Extended Attributes, thus causing
multiple levels of decoding, SysMaint will decode the Multiple Value
Extended Attributes and display them in decoded form. This causes a
single Extended Attribute to have multiple entries in the Key Name
window. In order to create unique Key Entries and to display the
level of the Extended Attribute, each Key Name will be followed by
two additional pieces of data, each placed inside a pair of parens.

1. The Level of the Extended Attribute. For a Simple Extended
Attribute this will simply be: (01). For a Multiple Value Extended
Attribute the numbers will start with (01) and increase by one for
each of the Extended Attributes within the initial one. If another
level of Multiple Value Extended Attributes is encountered, then an
additional level will be added to the Level Information: (04.01),
would mean that the fourth main level Extended Attribute is a
Multiple Value Extended Attribute and this is the first entry for
that Extended Attribute.

2. The type of Extended Attribute, such as Ascii, Binary, Icon or
Multiple Value.

This arrangement sounds complicated, but it ends up looking very much
like an outline would look and is not difficult to understand. Since
all of the entries will start with the name of the Extended
Attribute, it is very easy to know which entries go with which.

The on-line Help for SysMaint has extensive detailed descriptions of
how to select which Extended Attributes you want to operate on, what
operation you want done and how you want to handle the various
default actions. Therefore, it might be very useful to review the
On-line Help before doing much with the actual Extended Attributes.

Finally, a word of warning and a request for help.

The warning is that Extended Attributes can be critical to the health
of you environment. Therefore, you should not do something with the
Extended Attributes on your system if you are not sure you understand
what you are doing. You cannot hurt yourself if you simply look at
Extended Attributes via the Edit Function or Save them. However,
something like Splitting the Extended Attributes from a file will
leave the file without the Attributes. If you are doing it so you can
backup the file under DOS and will be careful to Join the Extended
Attributes back to the files before you use them. If you are not sure
about what you want to do, please go to the OS2AVEND Forum on
Compuserve, Section 1 and we will be more than happy to discuss your
intentions and any potential problems.

The request for help involves supplying documentation on any unusual
conditions you might encounter. One of the items in the Default
Dialog for the Extended Attributes is to activate a log to the
INIEA.LOG file. Anytime you encounter a condition where SysMaint
cannot handle an Extended Attribute condition or have invalid
Extended Attributes, I would ask you to turn on the logging, ask to
Edit the Extended Attributes that are invalid or causing a problem,
close SysMaint, zip the resulting INIEA.LOG file and Email it to use
using the Compuserve ID in the main documentation or mail to the
supplied address. This will allow us to be able to see the various
conditions that occur and modify the program to handle them.
