
Anomaly Report:  Genifer 4.0

---[1]--------------------------------------------------------------------

PROBLEM:  Genifer crashes when you try to create a new application,
giving you a DOS error 31 or 32.

COMMENT:  This is not a bug.  Your system's SHARE utility is not
correctly configured.  Modify your AUTOEXEC.BAT and add the /F parameter
to SHARE, as follows:

                             SHARE /F:4096

If SHARE is already configured to use 4096 bytes, or more, increase it
by another 2048.  (Any other parameters for SHARE may be left as is.)
Then reboot your system.

This was discussed in the READ.ME file.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[2]--------------------------------------------------------------------

PROBLEM:  When you generate documentation, Genifer does not show any
lines or boxes in your screen layouts.

COMMENT:  This is a bug in the GTLImage() function.  This was mentioned
in the READ.ME file.

WORKAROUND:  None.  This will be corrected in 4.01.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[3]--------------------------------------------------------------------

PROBLEM:  If you abbreviate template directives, as p. 201 of the
Genifer manual indicates you may (e.g., "set inde" instead of "set
indent"), Genifer gives you a compilation error when you try to
generate.

COMMENT:  The four-character rule does not apply to template directives.
This was mentioned in the READ.ME file.

This is only relevant if you are modifying your templates.

WORKAROUND:  Don't abbreviate directives.  Duh.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[4]--------------------------------------------------------------------

PROBLEM:  When you try to generate code, Genifer gives you an error
message and indicates that there's a syntax error on on a line
containing the genvar [field #width].

COMMENT:  The expression used to define [field #width] is defective.
This genvar is not used in most template sets.

FIX:  In the file LEGACY.GTH, change:

  define genvar [field #width] as MAX(LEN[field header]), [field #size])

to:

  define genvar [field #width] as MAX(LEN([field header]), [field #size])
                                         ^
After making this change, you should delete all .GTO files (compiled
templates) in your template directory.  This forces Genifer to recompile
your template(s).

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[5]--------------------------------------------------------------------

PROBLEM:  When you Test for Errors, Genifer erroneously indicates that
some of your screens have databases with no associated windows.  Also,
the generated programs do not run.

COMMENT:  There is a bug in the function GTLPageSeq().  It always
expects a table name of eight characters.  If you use table names of
less than eight characters, you see the behavior described above.

FIX:  Two changes must be made.  First, in the file LEGACY.GTH, change:

  define genvar [database page-sequence]   as GTLPageSeq([database name])
  define genvar [database window-sequence] as GTLPageSeq([database name])

to:

  define genvar [database page-sequence]   as GTLPageSeq(dbTable->table)
  define genvar [database window-sequence] as GTLPageSeq(dbTable->table)

After making this change, delete all .GTO files in your template
directory, to force Genifer to recompile your template(s).

Second, in the file GENTEST.GTL, change:

<< define genvar [database window-list] as GTLPageSeq([database name]) >>

to:

<< define genvar [database window-list] as GTLPageSeq(dbTable->table) >>

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[6]--------------------------------------------------------------------

PROBLEM:  Genifer creates a profusion of small files with names like
GEN12345.ENV.

COMMENT:  These are temporary files which, in most instances, are
deleted when Genifer is done with them.  The exception is when you
access the Application Setup screen.

WORKAROUND:  These files may be deleted, as long as you don't do it
while Genifer is running.  Just DEL *.ENV periodically.

You can also minimize this problem by accessing the Setup screen only
when necessary.  To simply move between applications, use the [F2] pick
key from the Main Menu instead of going to Application Setup.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[7]--------------------------------------------------------------------

PROBLEM:  Your generated program is missing the code to display some or
all of the fields, or the same fields appear in more than one window.

COMMENT:  Like anomaly #5, this occurs only when your database has a
name of less than eight characters.

WORKAROUND:  You must add a line to LEGACY.GTH.  This line should read:

  define genvar [field #window] as IIF(scrObj->window = window->window,
    .AND. window->(DBSEEK(scrObj->program+STR(scrObj->window,2))),
      window->table, '*')

(This must be coded as a single line in the file.  It is shown above as
three lines above because of its length.  If your LEGACY.GTH already
contains a line beginning "define genvar [field #window] as", modify it
to read like the one above.)

After making this change, delete all .GTO files in your template
directory, to force Genifer to recompile your template(s).

This solution is characterized as a workaround rather than a fix,
because [field #window] is given a bogus definition.  This precludes use
of [field #window] for other purposes.

NOTE:  Several earlier versions of this fix were published.  These
previous versions were not "wrong", just not as general.  This version
appears to fix all related problems for all Genifer 3.0 template sets.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[8]--------------------------------------------------------------------

PROBLEM:  In Genifer 3.0, you specified an alternate database driver
(e.g., DBFCDX) to use with your Clipper 5.2 templates, but when you
regenerate after converting the application, you're told you're using an
Unsupported RDD.

COMMENT:  This is a bug in the translation routine, which causes the
genvar [program procedure-name] to have an imbedded carriage return.
This affects only users of the Clipper 5.2 templates who are working
with an alternate RDD.

WORKAROUND:  After translating, go to the Miscellany field for Special
Program GENMAKE.BAT.  This field will contain a line beginning with
"::PROCEDURE = ".  Place a double colon (::) at the end of this line.
This symbol acts as a delimiter, causing GTLItem() to ignore the
following carriage return.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[9]--------------------------------------------------------------------

PROBLEM:  In the Applications Setup screen, the Copy option creates a
new application, but does not copy the dictionary definitions, screen
layouts, etc.

WORKAROUND:  After copying, press [F3] to shell to DOS.  Then COPY *.*
from the old data directory to the new one.  Type EXIT to return to
Genifer.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[10]-------------------------------------------------------------------

PROBLEM:  If an error occurs while printing documentation (such as your
printer running out of paper), Genifer throws you back to the main menu,
and the screen display is all screwed up.

WORKAROUND:  Press [Esc] once or twice to exit Genifer, correct the
printer problem, and retry the operation.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[11]-------------------------------------------------------------------

PROBLEM:  When you Test for Errors, the test log indicates that one or
more of your tables are indexed incorrectly, but the suggested index
doesn't belong to that table.

COMMENT:  Genifer has correctly identified a real problem area.  Only
the suggested replacement index is incorrect.

FIX:  In GENTEST.GTL, locate the following line:

[ ] {[database name]}.DBF isn't indexed on key index {[index name]}. ...
    See note #22.

and change [index name] to [database key-index].

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[12]-------------------------------------------------------------------

PROBLEM:  When you press [Esc] to abort generation of code or
documentation, a dialog box appears indicatating that generation was
aborted, but Genifer continues to generate the rest of the file anyway,
discarding the results.

COMMENT:  This problem is sporadic.  Genifer fails to abort when the
template is inside a FOR/ENDFOR loop.

WORKAROUND:  Key pressing [Esc].  Sooner or later you'll catch Genifer
outside of a FOR/ENDFOR loop.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[13]-------------------------------------------------------------------

PROBLEM:  If you specify the SET GENIFER directory as the Data or Output
Directory for a new application, Genifer crashes when trying to create
the new data files.

COMMENT:  Bytel's technical staff has been unable to replicate this
error, though it has been reported by several users.  This may actually
be the same problem as #15 below.

WORKAROUND:  You should never use the SET GENIFER directory as the Data
or Output Directory.  This is a good rule regardless of the existence of
any bug.  Using the central directory for either data or output invites
the commingling of different applications.  Give each application its
own data/output directory(s).

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[14]-------------------------------------------------------------------

PROBLEM:  Genvars involving secondary references to [database
key-index], such as [database key-index expression], sometimes return an
erroneous null string.

COMMENT:  This problem only affects users who are customizing their
templates.

WORKAROUND:  You must use a For All loop to obtain the desired value:

<< define subclass key-index as [index name] == [database key-index] >>
<< for all key-indexes >>  (they'll be only one)
  << [exp] = [index expression] >>
<< endfor >>

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[15]-------------------------------------------------------------------

PROBLEM:  When you use the Translate option to convert a version 3.0
application, Genifer crashes with the message:

                      Function DBUSEAREA
                      Error 21
                      Open error

                      File DBFIELD.DBF
                      DOS error 2 (File not found)

COMMENT:  This occurs on when you try to translate over an existing
application (e.g., converting an application which you converted
previously).

WORKAROUND:  You must delete the existing Genifer 4.0 data files prior
to Translating.  The simplest way to do this is to select the Delete
option on the Application Setup screen.  When Genifer asks if you wish
to delete the Data Directory, respond affirmatively.

Unfortunately, if your Data Directory contains files you wish to
preserve (such as the old Genifer 3.0 data files), you won't be able to
use this method.  Instead, Quit out of Genifer, switch to the Data
Directory, and issue the following commands:

                      DEL *.GDF
                      DEL *.DBT
                      DEL *.NTX

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[16]-------------------------------------------------------------------

PROBLEM:  In your generated application, computed fields and/or
variables always evaluate to blanks or zeroes.

WORKAROUND:  In the file LEGACY.GTH, add the line:

  define genvar [field default] as WhenEmpty(WhenEmpty([field expression],
    TRIM(GTLMemoFix(dbField->default))), [field blank-value])

(This must be coded as a single line in the file.  It is shown above as
two lines above because of its length.)

After making this change, you should delete all .GTO files (compiled
templates) in your template directory.  This forces Genifer to recompile
your template(s).

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[17]-------------------------------------------------------------------

PROBLEM:  After translating a Genifer 3.0 application, any meta strings
in the reports don't work correctly.

COMMENT:  The meta strings are converted to variables, but the process
is incomplete.  The variables are created on the screen, but not in the
Data Dictionary.

WORKAROUND:  After translating, select Reports from the Screens and
Reports menu.  For each report which used meta strings, Zoom into the
Layout.  Edit the relevant section(s) and immediately press [Ctrl-W] to
save the section.  Saving the section in this manner adds the needed
record to the Data Dictionary.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[18]-------------------------------------------------------------------

PROBLEM:  When you translate a report wider than 80 columns, long lines
are broken into two or three separate lines.

WORKAROUND:  After translating, use the layout editor to remove the
unwanted carriage returns.  All text and field assignments are
translated properly.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[19]-------------------------------------------------------------------

PROBLEM:  When you shell out to DOS using [F3], or invoke an external
text editor, the appearance of the cursor changes.  Most commonly, the
cursor appears as a blinking line in the middle of the current
character, instead of underneath it.

FIX:  Place the following command in your AUTOEXEC.BAT file:

                         SET CLIPPER=//CGACURS

Note that doing this may change the cursor's appearance -inside- of
Genifer.  Specifically, you may find that the cursor looks the same in
both insert and overwrite modes.  If this happens, experiment with
different cursors on the Other Settings screen (under the Applications
menu).

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[20]-------------------------------------------------------------------

PROBLEM:  When you delete a variable in the Data Dictionary, the next
"variable" that Genifer shows you is actually a database field.

WORKAROUND:  Quit back to the Data Dictionary menu and select Variables
again.  You will be shown only variables.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[21]-------------------------------------------------------------------

PROBLEM:  In the Report layout editor, if you add a field and press
[Tab] or [Enter] to go through all the fields in the second (Optional
Field Parameters) window, the Print flag gets turned off.

WORKAROUND:  When the Optional Field Parameters window comes up, press
[Ctrl-End] or [PgDn] to save the field, instead of [Tab] or [Enter].

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[22]-------------------------------------------------------------------

PROBLEM:  In the layout editor, deleting all the windows on a screen
causes Genifer to crash.

WORKAROUND:  Prior to Deleting window #1, renumber it as window #2.
Then Add a new window #1 before Deleting the unwanted window #2.

This method will work with Menus and Data Screens.  However, it won't
work with Report screens, since the latter allow you to specify only one
window at a time.  In this case, you should just delete the entire
window contents (using [Ctrl-Y]) and create your new design using the
same window.

If you're trying to eliminate the Report screen entirely, you must
use the Delete option.  This will cause Genifer to crash, but will not
damage your application.  When you re-run Genifer, the report screen
will be gone.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[23]-------------------------------------------------------------------

PROBLEM:  When you try to Generate, Genifer just sits there.  Neither
code nor an error message is produced.

COMMENT:  Most likely, the specified template file is missing.  The
"bug" is that Genifer fails to alert you to this condition.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[24]-------------------------------------------------------------------

PROBLEM:  In generated report programs, references to Total variates
(TTT_*) are missing.

FIX:  In LEGACY.GTH, change:

  define genvar [field lnk-alias] as [window database alias]

to:

  define genvar [field lnk-alias] as IIF([program type] = "R"
    .AND. section->(DBSEEK(repLine->(program + STR(section,2)))),
      [section database alias], [window database alias])

(This must be coded as a single line in the file.  It is shown above as
three lines above because of its length.)

After making this change, delete all .GTO files in your template
directory, to force Genifer to recompile your template(s).

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[25]-------------------------------------------------------------------

PROBLEM:  If you specify LEGACY20.GTH as the Compatibility Header File
(which you must do to use Genifer 2.0x templates), attempting to
Generate produces the error message:

                  Header file "Legacy30.GTH" not found

FIX:  In the file LEGACY20.GTH, change:

  include "Legacy30.GTH"

to:

  include Legacy.GTH

COMMENT:  Once this is fixed, generating will produce a second error:

              Unknown genvar class: [color box-and-titles]

Early templates for Genifer 2.0 used a set of color genvars to hard code
the color settings into the application (later templates contained their
own built-in color selector.)  Genifer 4.0 does not recognize these
genvars.

WORKAROUND:  If your templates contain a color selector, simply delete
or comment out (with an asterisk) all of the color genvar definitions in
LEGACY20.GTH.  The program will then generate without error.

If your templates do not contain a color selector, and relies on these
color genvars, you must modify your templates.  Three steps are
required.

First, in each of the .GTL files, change all references to [color *] to
[application *].  That is, instead of [color box-and-titles], the genvar
becomes [application box-and-titles].  ("Application" is a recognized
genvar class, where "color" is not.)  You should be able to do this
easily using the search-and-replace feature of your text editor.

Second, make the same change to the Define Genvar directives in
LEGACY20.GTH.

Finally, in LEGACY20.GTH, change the definition of the genvar
[program is-color?] from ISCOLOR() to C_RunColor().

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[26]-------------------------------------------------------------------

PROBLEM:  When you convert a Genifer 2.0 or 3.0 application, if you had
a field which was validated against a field of a different name, the
converter puts the wrong expression in the Linkage section.  This causes
generation of erroneous SET RELATION commands.

WORKAROUND:  After converting, go to the Linkage screen in the Data
Dictionary and manually correct the expression.  For example, if the
field STATE is validated against the field ST_CODE, the linkage
expression should be STATE, not ST_CODE.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[27]-------------------------------------------------------------------

PROBLEM:  If you delete a field from the Data Dictionary, Genifer
removes all references to the field on your application's Data Screens,
but doesn't resequence the other screen fields.  If the deleted field
appeared in in the middle of a screen, there will be a gap in the
Get sequence numbering.

The same problem occurs in menus when you delete a program which has
an existing menu reference.

COMMENT:  Programs will generate and run properly even with such gaps in
the sequencing.  This only becomes a problem if you wish to make other
revisions to your screen, such as adding new fields.

WORKAROUND:  Before deleting the references to the field in the Data
Dictionary, delete all references on your screens.  Alternatively, you
can update the Get sequence manually after the deletion.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[28]-------------------------------------------------------------------

PROBLEM:  In the Data Dictionary, under Variables, the Retrieve feature
doesn't work.        

WORKAROUND:  Use the Next option.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[29]-------------------------------------------------------------------

PROBLEM:  All objects in your application (tables, fields, programs,
etc.) appear twice, even after deleting the indexes.

COMMENT:  This occurs if you copy the Genifer data files (*.GDF) to a
new directory outside of Genifer, and then perform a Modify or Copy in
Application Setup, using the new directory as your Data Directory.

Copying the .GDF files through DOS is unnecessary.  When you Copy an
Application, or Modify and declare a different Data Directory, Genifer
automatically copies the .GDFs to the new data directory.  If you have
copied them already, Genifer appends the data to the existing copies,
with the result that every record in each .GDF is duplicated.

--------------------------------------------------------------------------


Anomaly Report:  Genifer 4.0

---[30]-------------------------------------------------------------------

PROBLEM:  When you Copy a program, or use Modify to rename it, any boxes
or lines you've drawn are lost (all other screen objects are captured
properly).

COMMENT:  This problem doesn't occur when you copy or modify a window
within the program, only when the entire program is copied.

WORKAROUND:  None.  You must recreate the box in the copied/modified
screen.

--------------------------------------------------------------------------


