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 online 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 Online 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 youself 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 condtion 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.