11/12/02
Version 3.00
* The "Ad Loading"/"Cargar de Avisos" product configuration screen has a
new "Use Import Nesting Sequence Numbers"/"Usar secuencias del nido para
importacion" field to use the sequence numbers from the import nesting
(if an import nesting is present and has an entry for the class).
The default is "N" to construct the sequence numbers according to the rules
in the product configuration.
Set this field to "Y" to copy the sequence numbers from the default import
class nesting. If the nesting does not contain an entry for a class,
ClassPag constructs the sequence number as before.
* The interface purgecache.sh script has a new -askdays option to prompt for
the number of days and a new -int option to prompt before deleting files
(when -rm has been specified).
* The Import menu has a new "Purge EPS cache"/"Limpiar archivos guardados de
eps" entry to purge old files in the eps cache using the purgecache.sh script.
* The initial screen display of bitmap previews is now several times faster
in all spice applications (including ClassPag).
* ClassPag now checks for and strips previews in EPS files referenced by
banner text segments (text type "I"). The prevents postscript errors
in constructed banners if a banner segment was saved with a preview.
* The banner request name checking added in the previous version is now
restricted to check only banners for square-offs (banner type "R").
* Added a -q option to cortops not to complain when the input file has no
preview.
* Added a -find option to the fixperm.sh script to force the use of "find"
instead of "-R" with chmod and chown.
* Added a -follow option to the fixperm.sh script to force the use of the
"-follow" option with find. If the scratch directories are symbolic links and
have incorrect permissions or ownerships (for example, if someone ran ClassPag
as root), running "fixperm.sh -follow" will correct the files. Before running
this command, you should be careful that you do not have other symbolic links
within the ClassPag directory tree that point to files that should not be
changed (for example, system files or files on other servers).
* The file browser in the "view ad directories" window now handles files with
embedded spaces better and does not let you load files with trailing spaces.
When possible, you should restrict EPS file names to letters and digits.
Punctuation characters, spaces, and control characters will sometimes cause
problems.
EPS files with trailing spaces will not work because file names are blank
padded when they are stored in the ClassPag databases.
* The display filler list no longer shows fillers with embedded spaces in
their file names as "missing".
* The prof.sh profiling script now keeps more previous versions of prof.lis.
NOTE: This version has over 1700 lines of changes from the previous version.
11/14/02
Version 3.01
* You can now enable and disable template banners during a pagination
session through Cmd -> Misc... -> Place template banners.
If you have many full page ads, you can start the session with template
banners disabled, lock the pages that contain full page ads, and then enable
template banners and continue with the remaining ads.
The value for the current work area is in the control record in the
new field "Place Templates"/"Colocar plantillas".
The default value is in the product configuration record in the screen
"Folios and Banners"/"Folios y Carteles" in the field
"Place template banners"/"Colocar carteles para plantillas".
* The View Ad Directories option to load a class header now no longer places
a leading "H" in the banner name if the classification name is 7 or more
characters unless there is already a classification banner with a leading
"H" for that class. This leaves room for a dash and a two digit width for
7 character classes and for a dash and a single digit width for 8 character
classes.
* Added an Import -> Edit the Control Database option to view the control
records. This makes it easier to check control records. You can still
reach this window through the command menu in Import -> Copy ClassPag Files.
* Added a -v verbose option to cortops and changed the default to -q.
* maketar.sh no longer includes files in root/cache.
* Merged cortops.c with the version in the spice mace area.
* When ClassPag opens an editor view window in an xterm, it now sets LINES=24
and COLUMNS=80. Many xterm programs start emacs before resetting the window
geometry, and this causes emacs to pick up the geometry of the xterm window
used to start ClassPag. If the original xterm was not 24x80, emacs would not
paint correctly. Setting LINES and COLUMNS should fix this.
* Fixed a problem where square-offs placed on the bottom that contained display
ads dummied towards the top would sometimes end up with a display ad above the
banner if you moved ads on the page.
* Changed the inner loop for displaying bitmapped integers from "double"
to "long long" with gcc. This should make images display faster.
* The ctree libraries on the SCO Unix build system (mip486) and on the Red Hat
Linux 7.1 build system (mci17) were from Feb 21, 2002. Also, some systems had
new headers but old libraries. This could have caused problems in places where
ClassPag accesses ctree, for example, when freeing ads when a square-off is
moved. The ctree routine where the problem happened will now log a message
"LKISAM, error, mode #, ct_lock # has filno # >= mxfil #" instead of making
a bad call to UDLOCK.
NOTE: There are over 1700 lines of changes from the previous version.
11/19/02
Version 3.02
* The "Leading Between Ads"/"Interlineado entre avisos" product configuration
screen has a new field "Zero means zero leading"/"Cero es cero interlineado"
to control the meaning of entering "0" in the leading fields in this section
of the product configuration and in the ad configuration.
The default value of "Y" tells ClassPag that entering 0 means that you really
want 0 leading.
Setting the value to "N" tells ClassPag to treat a field with 0 leading the
same as if it were blank. ClassPag will then compute the leading for that
combination of ad types by adding the leading below of the top ad type
to the leading above of the bottom ad type.
ClassPag did not treat 0 leading values consistently. It would place ads
with 0 leading but then justify them to the computed default leading if
there was enough unused space on the page.
Entering 0 now means 0, which corresponds to the notes for version 2.36
that specify that ClassPag ignores only empty fields.
If an existing product configuration uses 0 to mean the computed default
leading, you can set "Zero means zero leading" to "N" instead of redoing
the product configuration and ad configuration fields.
* Added Spanish translations for the box information strings for the automatic
segment flag and the template banner flag.
* ClassPag now asks to reload the ads if you change the "Flow" page name field
to control whether ClassPag should flow or dummy one-column display ads in
square-offs. Before this change, you would need to leave and restart the
pagination session for the square-off to work, although this was usually not a
problem because the "Flow" field is often set during the initial setup and not
changed on a daily basis.
* Fixed a problem where a square-off positioned from the top below other ads,
for example, a template banner, would sometimes pull the otber ads inside the
square-off.
* ClassPag no longer shows template banners in the list of unplaced ads.
* setup.sh now shows the value of $DATA.
* runcpag.sh now shows the cpag executable that it will run.
* loadtape.sh processes logmn.xfm LogInstallation with bspice instead of spice
if bspice is present.
* Changed the square-off code and fill-page code to call set_locking instead
of calling LKISAM directly. This seems to fix the problem freeing ads in a
square-off.
* On unix systems with X Windows, ClassPag now shows a warning when
"/usr/bin/X11/xterm" is not found. ClassPag and Spice run commands
inside xterm windows, and those commands will fail if xterm is missing.
The xterm program is part of the basic X Windows client installation,
so it is usually missing only if someone has deleted it.
* ClassPag now links to the libtiff.a in $SPICE_LIB (when it is present)
instead of to the shared libtiff.so in /usr/lib.
The libtiff.so.3.5 shared library provided with RedHat Linux 7.1 (and probably
other versions of RedHat) can crash on corrupt tiffs.
The newer version built into $SPICE_LIB produces messages like the ones below,
but does not crash.
/u/displayads/testbadtiff.epsp: Warning, PackBitsDecode: discarding 38 bytes to avoid buffer overrun.
/u/displayads/testbadtiff.epsp: PackBitsDecode: Not enough data for scanline 787.
NOTE: There are 1960 lines of changes from the previous version.
11/22/02
Version 3.03
* Changed setup.sh to place /usr/local/bin, /u/cpag, and /u/scs/tools/bin at
the front of the PATH instead of at the end. Also, setup.sh makes sure that
/usr/local/bin comes before /bin and /usr/bin.
* ClassPag now shows a warning if more folios use column ranges than ClassPag
supports.
* Increased the number of folios that can use column ranges from 2 per side
to 5 per side.
* The message to show database errors had the DB and OS codes interchanged.
* ClassPag routines that call c-tree now restore the locking state to its old
value instead of setting it to SUSPEND. This should fix a problem with banners
where the sequence "Cmd -> Misc -> Edit Banner Text -> increase the amount of
text in a banner -> Rebuild all banners" produces a message with c-tree error
code 42 and OS error code 11.
NOTE: There are 610 lines of changes from the previous version.
12/4/02
Version 3.04
* Increased the maximum number of active classes from 5000 to 10,000.
A site required about 6000 classes.
* Increased the maximum number of ads from 70,000 to 80,000.
* Increased the maximum number of ads per page from 4000 to 5000.
5000 is enough to cover a 10-column 21" inch page with ads of
10 * 21 * 72 / 5000 or about 3 points.
* Increased the maximum number of external images from 3000 to 4000.
* When you print from a "Spread" with "Add PS Comments" set, ClassPag
now includes the file names of external ads. This should help locate
bad EPS files when the file name of an ad differs from its ad number.
* When setup.sh sets the InstArea, it uses NewInstArea if it is not empty.
As before, setup.sh runs spicedef and buildenv if SPICE_INC or TOOLS is empty.
* Added the interface countfrm.sh to count the lines of source code.
* ClassPag now generates "(r) file cvx exec" instead of "run".
This works around a change in ghostscript 8.00 where it now does an implicit
"showpage" after each "run". The new sequence works with all previous versions
of ghostscript, so it is not necessary to update ghostscript. If you update
to ghostscript 8.00, you must update ClassPag.
* ClassPag now writes a log entry when a square-off does not have enough ads
or ad area. This should make it easier to find out why ClassPag did not build
a given square-off.
* Fixed a problem where a square-off with line ads that was close to the
minimum size would sometimes not flow when you repaginated the first time.
The initial pagination used the exact value for the area, but later
paginations used a calculated value that included unused class headers
but did not include any leading.
* Added a "fixincno.ps" for use with SII interfaces. It sets both
cp_do_logo_fix and cp_do_obit_fix to false. Set the PS Patch Before Internal
Ads to "include fixincno.ps" instead of "include fixinca.ps" when fixinca.ps
leaves small logos shifted to the right.
* Fixed a problem where ClassPag could get in a loop distributing space
between single column ads sandwiched between multi-column ads.
* ClassPag no longer clips OPI images if the ALDImageDimensions line
is not present in the OPI call. The OPI 1.3 Specification requires lines
with the ALDImageCropRec, ALDImagePosition, and the ALDImageDimensions.
SII SCOOP omits the ALDImageDimensions. ClassPag used to crop according
to the ALDImageCropRect, but that could eliminate the image if the image
was resized.
NOTE: This version has 545 lines of changes from the previous version.
12/5/02
Version 3.05
* The page name window to view square-offs has a new hot key to delete
all of the records.
* Fixed a problem in the previous version where ClassPag would not
make square-offs that contained only flowed line ads.
12/28/02
Version 3.06
* The folio text field "Is Folio"/"Es folio" now works with EVEN and ODD folio
types. It previously affected only templates. For EVEN and ODD folio types,
it defaults to "Y", while for template folios types, it continues to default
to "N".
* The product configuration screen "Folios and Banners"/"Folios y Carteles"
has a new field "Place slug first"/"Colocar linea slug primera" to control
the placement of the slug line. The default value of "Y" places the slug
line first inside the page so that folios and templates can overwrite it.
The value of "N" places the slug line last so that it can overwrite folios
and templates. Placing the slug line last can be useful on pages with
templates that would otherwise hide the slug by drawing large white areas.
* ClassPag now writes a postscript comment in the page before the slug line
to make the EPS for slug lines easier to locate.
* When you edit one of the setup databases, make changes in the form, and
then close the form without writing it, ClassPag now asks if you are sure.
ClassPag used to ask only for the product configuration database.
It now asks for all databases.
* The Agate Filler window options to copy agate fillers from another
product and to copy display fillers from the current product
and the Display Filler window options to copy display fillers from
another product and to copy agate fillers from the current product
all now ask before copying each filler.
This make it easier to copy just a set of fillers.
* The data entry form editor has a new "Goto Screen Name" entry under
the "Display" menu that display a list of screens in the current form.
The "g" hotkey in the menu now links to this entry instead of
"Goto Screen (#)". The "Goto Screen Name" entry makes the product
configuration screens much easier to navigate.
* The runcpag.sh with the "ansi" option now checks for SPICETERM
of "xwindow" in addition to "14" and unsets ALTKBMAP.
* initscr.sh now shows the fdf differences when run with -v
(which can be set by running runcpag.sh with -iv).
* On systems without /usr/local/bin/ggrep, initscr.sh no longer
forces a rebuild if the only change in fdfs is the version number.
NOTE: The folio changes need testing.
NOTE2: This version has about 1500 lines of changes from the previous version
plus over 400 lines of changes to the spice data entry module.
1/3/03
Version 3.07
* ClassPag now loads folios much faster using the new "BlobNextToken" spice
built-in. This should make the first page that you view in a session open
much faster.
* The data entry "Goto Screen Name" command bar entry now takes you to the
first field of the screen. This makes it more useful on modem and telnet
connections without a mouse.
* Fixed a problem where ClassPag would not place template banners after one
was positioned manually.
NOTE2: This version has about 200 lines of changes from the previous version
plus 55 lines of changes to the spice data entry module.
1/7/03
Version 3.08
* Added a "Find super class" entry under Cmd -> Ads to highlight the ads in the
superclass of the current ad. ClassPag starts with the class if the current ad.
If the class has no subclasses or if the class has a parent class with a name
that is a prefix of the class, ClassPag advances to the parent class.
Then ClassPag highlights all ads in the final class or under the final class.
* The product configuration screen "User Preferences"/"Preferencias de Usuarios"
has a new field "Find class button includes super class"/"Boton para buscar
clases incluye mayores" to control the find class toolbar button.
If the field is its default value of "N", the find class button runs
Cmd -> Ads -> Find class. If the field is "Y", the find class button runs
cmd -> Ads -> Find super class.
* The Cmd -> Ads -> Scan Images window has a new command to print
a report of the killed ads.
* The Cmd -> Ads -> Find an Ad command menu has a new hotkey to restrict
the listed ads to only killed ads.
* The Cmd -> Ads -> Find an Ad menu has stars in front of active search
selectors to make it easier to see which are selected.
* The Cmd -> Ads -> Find an Ad menu abbreviates the hotkey keystrokes
to leave more room for the hotkey descriptions.
* The Cmd -> Ads -> Find an Ad menu has new entries to print reports
of missing, missized, and killed ads and to rescan for eps ad images.
These are the same reports that are under Cmd -> Ads -> Scan Images.
* The Toggle Selection hotkey now works in the Paper setup window.
This makes it easier to identify the active entries.
* In the Paper setup window and in the Paper selection window,
when the window is showing all paper entries, the active entries
now have a leading star to make them easier to identify.
* The Unmark Pages options are now on the Cmd -> Unlock menu instead
of the Cmd -> Lock menu.
NOTE: This version has over 1000 lines of changes from the previous version.
1/8/03
Version 3.09
* The various commands in Cmd -> Remove to remove ads from the current
page to the end and the command Cmd -> Pages -> Fill To End now work
from the current page to the front if you are paginating back to front.
If you are paginating front to back, they work from the current page
to the back as before. The commands also show an additional dialog
showing the range of pages that they will modify so that you can
cancel the command if you do not like the range of pages.
* The unload.sh script no longer displays a warning if the .def file is not
found. The .def files are for development only and should not be present
in installations. The new unload.sh -def option enables the check.
* For reference, here are the cut-rule rules:
NEVER PERMIT SOMETIMES ALWAYS
NEVER NO NO NO NO
PERMIT NO NO NO YES
SOMETIMES NO NO YES YES
ALWAYS NO YES YES YES
* Fixed a test that could cause ClassPag to log a warning message about
not being able to update BeginData comments.
* Fixed a test that could cause ClassPag to log a warning message about
an unrecognized variable I_IMAGENAME.
NOTE: This version has 300 lines of changes from the previous version.
1/9/03
Version 3.10
* Added Cmd -> Lock -> "Set marked pgs as printed"/"Fijar págs marc. a imp."
and Cmd -> Unlock -> "Clear marked pgs as printed"/"Limpiar págs marc. de imp."
to control the pages marked as printed. To change the "printed" status of
a set of pages, select the pages, and then use one of these commands.
* The View Box command no longer strips document comments. It used to work
that same as View Page with "Remove DSCs (PS comments)" enabled.
NOTE: This version has 188 lines of changes from the previous version.
1/10/03
Version 3.11
* Improved the justification for multi-column ads under another multi-column ad.
If a banner has multi-column class headers below it, ClassPag will now align
the headers and the first line ad below the headers.
* Added a work-around to the default separation prolog to treat "imagemask"
operators a dictionary argument the same as it treats "image" operators.
This fixes a problem where gray scale logos that used "imagemask" with
a dictionary argument did not appear in separated output. In general,
the Level 2 dictionary form of the "image" and "imagemask" operators
is not permitted in EPS files intended for software separation,
see Adobe's Technical Notes #5044.
NOTE: This version has over 200 lines of changes from the previous version.
1/13/03
Version 3.12
* Optimized the drawing of the border of boxes of ads with preview images
on the preview screen.
NOTE: This version has over 125 lines of changes from the previous version.
1/16/03
Version 3.13
* The "Folio Text" screen has a second "All Plates"/"Plantillas" field
with the values "A", "B" and "C". The default of "A" writes the entry
on all plates. "B" writes the entry only on pages without color separations.
"C" writes the entry only on pages with color separations.
This allows you to create different templates for black and white pages than for
color pages and can be useful if color pages need special registration marks.
* The banner database has new values for the "Split Overflow"/"Partir Exceso"
field to enter class headers that should appear only at the tops of columns.
As with class headers, enter type "P" (Primary), a valid classification,
a non-empty request name, a position of "E" (Every).
Set "Split Overflow" to "R" to enter a header that should appear only
at the tops of columns when the header is repeated.
The new header applies to the specified class and all of its subclasses.
For example, if class 300 is autos and contains subclasses for each make,
entering a repeat header for class 300 will show that generic auto header
over all columns of auto ads that do not start a class for a new auto make.
The original copy of the header still comes from the sort file.
The new repeat header overrides repeat headers specified by a page request
of "COPY" in the sort file.
Set "Split Overflow" to "P" to enter a header that should appear at the
tops of columns in addition to the class header.
The new header applies to all subclasses but not to the class itself.
For example, if class 300 is autos and contains subclasses for each auto make,
entering a parent header for class 300 will show that header and then
an auto make header at the tops of all autos columns.
The "Overflow"/"Exceso" field specifies when to repeat the sub header
before the super header. "F" always places both the super header and
the sub header. "S" places the sub header below the super header only
when it is at the start of a classification.
* The command Ads -> Convert Ad to EPS now tries the default ad creation
directory if the display ads directory is not writable. If the default ad
creation directory is also not writable, the command writes the EPS file in the
current work area. This is useful when the display ads directory is a read-only
NFS mount.
* The command Ads -> Convert Ad to EPS now shows the location where it will
write the EPS file. This helps prevent surprises with the additional
new directories that it searches.
* The View Manuals command now tries mozilla and then opera if netscape is not
present. The Read Manuals command now tries mozilla if netscape is not present.
* Fixed a problem where ClassPag would sometimes not mark the first overflow
page when leveling pages. This could lead to confusing results because ClassPag
does not save position requests on overflow pages, so ads placed on what looked
like a normal page would move when you repaginated.
* For reference, in the list of processes to cancel print jobs,
each of the options sends a unix signal.
"CancelPrint" sends signal 2 (SIGINT).
Spice catches this signal and sets a variable that the ClassPag print command
checks when it is in the loop to print all pages.
"Continue" sends signal 25 (SIGCONT on SCO and Solaris).
This signal wakes up a process that was paused by a stop signal.
"LogOut" sends a signal 9 (SIGKILL) which kills the target process.
NOTE: This version has over 1430 lines of changes from the previous version.
NOTE2: The changes to the placement of class headers needs testing.
1/17/03
Version 3.14
* The Page Name database has a new field "Hdr"/"Cab" to control whether
ClassPag places class headers below square-off banners.
The default value of "DEF" places headers according to the product configuration
field "Place under square-off banners",
"YES" places class headers below the banner.
"NO" does not place class headers below the banner unless they start a new class.
* Added a "fixincclip.ps" for use with SII interfaces. It works with an updated
"fixinc.ps" to add a 6 point margin around the clipping region for logos.
To use it, set the "Patch After Prolog" to "include fixincclip.ps".
* For reference, when the paper "PS Type" is "FPS", ClassPag does not resolve
OPI references in external EPS files. "FPS" tells ClassPag that it is OK
to embed postscript includes for external EPS files. ClassPag does not
attempt to scan the EPS files for OPI references, because the cost of the
scan would defeat the reason for using FPS. If you need to see OPI references
in external EPS files, use "PS" instead of "FPS".
NOTE: This version has over 215 lines of changes from the previous version.
1/17/03
Version 3.15
* The Page Name database field "Hdr"/"Cab" has new values of "SUB" and "KIL".
Both options kill the top level header (the header in the square-offs top level
class, or, if the class has no headers, the header in its first subclass).
Otherwise, "SUB" is like "YES" to repeat headers at the tops of columns,
and "KIL" is like "NO" to suppress copies of headers at the tops of columns.
* The product configuration screen "Folios and Banners"/"Folios y Carteles"
has a new field "Rebuild in preview"/"Rehacer en prever" to control whether
ClassPag should ask to rebuild banners (if needed) when you view a page from
the preview screen. The default is "N", to avoid time consuming rebuilds for
banners that contain page number or classification information.
If the banners depend on only the run date or if they rebuild quickly,
you can set the field to "Y" to rebuild the banners before previews.
As before, ClassPag always rebuilds banners from Cmd -> Print pages.
NOTE: This version has over 600 lines of changes from the previous version.
1/17/03
Version 3.16
* The printer database has a new field "Add BeginData"/"An~adir BeginData" to
control whether ClassPag writes BeginData/EndData comment pairs around embedded
EPS sequences. The default is "Y" to write the comments. Some OPI includers do
not look inside BeginData/EndData comments. If you need to print through an OPI
includer that does not look inside the comments, set the field to "N" to omit
the comments. Helios OPI, in particular, does not look inside ads enclosed
by BeginData/EndData comments.
NOTE: This version has over 100 lines of changes from the previous version.
1/21/03
Version 3.17
* ClassPag now unlinks (deletes) output postscript files (usually "cpag.ps")
before rewriting them. Print scripts that need to hold a copy of the cpag.ps
output file can now safely make a copy by making a hard link.
* Added a -bg option to rcpuniq.sh to do ftp commands in the background.
It works with -ftp and with -ftp -xterm.
* Added a -copy option to rcpuniq.sh for use with -bg to make a copy of the
file instead of a link. Previous versions of ClassPag need the -copy option.
You should use this option only if you are using the new rcpuniq.sh script
with an old version of ClassPag.
* rcpuniq.sh now sets "trap" handlers to clean up if it is killed.
* Added a "valgrind" debug option to runcpag.sh to run ClassPag under
the valgrind checker.
* save.sh now saves all *.ps files instead of selected files.
1/31/03
Version 3.18
* ClassPag can now select a range of characters from external names in the sort
file. This can be helpful for interfaces that append run codes to the names
even when ads are saved without the extra codes.
The "Ad Loading"/"Cargar de Avisos" product configuration screen has new
fields "Read Sort File Ad Numbers From"/"Leer nombres del archivo sort de"
and "To"/"hasta" to set the character positions that ClassPag should extract
from external file names when it imports ads from the sort file.
Both fields count the first characters as position "1".
If the file name field has a directory, position "1" is the character
after the final slash.
The default "From" position is "1", and the default "To" position is the
maximum length of the external name field.
For example, with a "From" of 2 and a "To" of 4, ClassPag converts the
name "/u/displayads/123456789" to "/u/displayads/234".
* Added printheap, noprintheap, and compareobjects parameters to runcpag.sh
for controling the options to the bounds checker.
* Added a "tail" parameter to runcpag.sh to show a tail of junk.tmp in an xterm.
NOTE: This version has over 4600 lines of changes from version 3.07.
2/10/03
Version 3.19
* The product configuration screen "Agate Ad Specifications (Continued)"/
"Especificaciones de Avisos Agate (continuado)" has a new field
"Shift stars in sort"/"Mover estrellas" to shift alphanumeric sequence numbers
in sort keys forward to the first star or to the end of the key.
The default value is "N" to leave sort keys alone.
If this field is set to "Y", ClassPag scans the sort keys of the line ads in
each classification. If each ad has a sort key starting with three uppercase
letters and if removing the letters will not change the sort order of the ads,
ClassPag shifts the first three letters forward in the sort key, to just before
the first star or to the end of the key if no keys have stars.
For example, when the shift is enabled, ClassPag would convert the sequence
of sort keys from
AAAALOSTPETCHEC****
AABFOUNDBIKERSV****
AACFOUNDCATMALE****
AADFOUNDDOGAPPR****
to
ALOSTPETCHECAAA****
FOUNDBIKERSVAAB****
FOUNDCATMALEAAC****
FOUNDDOGAPPRAAD****
ClassPag does the shift while loading ads from the database into memory at the
start of a pagination session. The entries in the database show the original
sort keys from the interface file, but ClassPag screens, like the Box Information
window, show the shifted keys.
Interfaces that pass stars in sort keys use the stars to replace unprintable
binary encodings of numeric values. Since numeric values are not amenable to
look-aheads, for example, 1999 is closer to 2000 than 2000 is to 2010 even
though it different as a text string, the three letter alphanumeric sequences
capture as much information as ClassPag could have obtained from a text
representation of the numeric values.
* The "View Box" button, and other commands that view ads, now show better
diagnostic messages when the EPS file is missing or invalid.
* When the spread field "Add a Slug Line" requests a "PROOF" message,
ClassPag now draws the message last on the page instead of first
in order to prevent page templates from covering it.
The "PROOF" message should always be visible to prevent publishing test
pages by accident.
* Improved the formatting of messages in the product configuration command
to remove unused entries.
* Fixed a problem where printer expressions that used ImportDir would see
the current work area instead of the import work area when printing all pages.
* Fixed a problem where ClassPag with back-to-front pagination would remove
headers in classes that had no line ads, even if the classes contained
subclasses with line ads. It didn't affect front-to-back pagination because
a check during pagination would replace them. The change to remove the headers
was for sites that pass incorrect single-column headers with multi-column
line ads and then enter the real multi-column headers as banner entries.
ClassPag must decide what to do with the headers before reading subclasses
or loading banners. If this fix causes problems with multi-columns headers,
the test will need to be moved to a configuration parameter.
* Fixed a problem where ClassPag would reserve too much space (and later fill it
with fillers) when paginating back-to-front in editions that did not need class
headers repeated at the top of every column.
* Fixed a problem where restarting a pagination session (with "Restart" on the
statistics screen) would lose headers that had been entered as banners (instead
of coming from the interface file).
NOTE: This version has 2756 lines of changes from the previous version.
NOTE2: The hash function to look up local format names in composition
was broken in spice from Sep 4, 2002 to Feb 6, 2003. The live index
for Clarin in Buenos Aires uses local formats.
NOTE3: The execute function is spice (and ClassPag) was broken from Feb 10,
2003, to Feb 12, 2003.
2/19/03
Version 3.20
* The product configuration screen "Ad and Class Conversions"/"Conversion de
avisos y clases" has a new field "Sort file filler flag position"/"Posicion
en sort de sen~a para rellenos" for interfaces that send a filler flag in the
sort file. The default value is 0 which means that there is no filler flag.
A value greater than 0 sets the 1-based column number of the flag in the
sort file. The SII interface at Raleigh writes the filler flag in column 100.
If an agate ad has a "Y" in the column, ClassPag converts it into a
class-specific agate filler.
* The database to hold classification page numbers (for building live indices)
now captures the section names and relative page numbers at the time that
ClassPag creates the database. The database used to hold only the absolute page
number, and then ClassPag would calculate the section names and relative page
numbers based on the "book sizes" of the session rebuilding the banners.
The new scheme should work better for people who use the "post" option to
combine page numbers from several sessions.
* The list view of the classification posting database now has functions
to modify entries. This makes it easier to test live indices and to make
last-minute fixes for page numbers.
* ClassPag now rebuilds the classification posting database if it has errors
opening it. This should allow posting into a location that was already in use
by a previous version of ClassPag. The install procedure does not automatically
convert the format of posting databases because they can be anywhere on the
system.
* The classification selection windows (at the start of a pagination session)
now show their parent classification in their title and now stack four deep
instead of three deep before recycling.
* The title of the outermost ClassPag window now shows the final component
of the home directory between the run date and the user/station/node string,
unless the home directory and the user are both "cpag".
This should make it easier to identify sessions that are running in test areas.
* Fixed a problem where ClassPag would not convert headers with a COPY request
into column headers in classes with no ads. The placement of class headers
needs testing.
* Started an editing change to parameterize the length of ad numbers in case
it becomes necessary to increase the length of ad numbers in a later version.
NOTE: This version has over 2500 lines of changes from the previous version.
2/24/03
Version 3.21
* The sort file position field (0-based columns 102-107) has a new "HA" value
to mark display ads as house ads. When ClassPag imports ads using a product
configuration where the "Sort file filler flag position" has a column position,
if a display ad has a "Y" in that position, ClassPag prepends "HA" to the
position request.
* The Ad Context database has a new "HOUSEAD" context to specify the color
of house ads. This makes it easier to locate house ads on the screen.
* The runcpag.sh crash log entries now include the user, tty and DISPLAY.
This should make it easier to identify who started the session.
NOTE: This version has about 200 lines of changes from the previous version.
2/27/03
Version 3.22
* The product configuration screen "Folios and Banners"/"Folios y Carteles"
has a new field "Rebuild option"/"Opcion para rehacer" to specify the
method of rebuilding banners. The default value of "WINDOW" opens the
banner text list window as before. You can use the command key (usually F12)
from this window to rebuild the banners.
The value "ALL_ED" automatically rebuilds the banners for all editions without
opening the banner text list window.
The value "CUR_ED" automatically rebuilds the banners for the current edition.
The "ALL_ED" and "CUR_ED" values can save several keystrokes in the typical
case where you do not need to modify banner text items on a daily basis.
If you need to modify a banner text item, you can still use Setup -> Banners.
* The product configuration screen "Outext Export"/"Exportar de outext"
has a new field "Write section names"/"Escribir secciones" to control
how ClassPag writes the section number and section relative page number
into outext lines. The section number is on card 4, columns 4-5,
while the section relative page number is on card 4, columns 6-8.
The default value of "N" writes the section number as "01" and
the section relative page number the same as the absolute page
number on card 4, columns 1-3.
The value of "Y" writes the first two letters of the section name
left justified in the section number field and the section relative
page number in the section relative page number field.
The values should match the values on the folios.
This should be more useful to most people, although it is technically
not valid to write an alphanumeric string in the section number field,
so this can not be the default.
* When ClassPag writes the header record of the outext file,
it now writes the first 10 characters of the edition name in columns 65-74
and the first 5 characters of the zone name in columns 75-79.
The columns 65-79 are documented to hold the edition name.
ClassPag used to fill it with a second copy of the product name from columns
50-64. The edition and zone information should be more useful.
* ClassPag will now create overflow pages to place display fillers with a
non-zero run count. Display fillers used to remain unplaced if they could
not fit on any page within the original page range.
* When the "Sort file filler flag position" is set and a line ad has a "Y" in
that position, ClassPag now marks the ad as a house ad instead of changing it
into an agate filler. In the agate ad database, the mark shows as an "A" in
the one-character abbreviated request field.
* Fixed a test with front-to-back pagination so that the configuration parameter
"Flow one column display ads if possible" now works.
NOTE: This version has over 900 lines of changes from the previous version.
2/28/03
Version 3.23
* ClassPag now replaces MultiAd OPI objects that contain the two lines
"(This file does not contain an image)" and "pop".
* The product configuration parameter "Convert all display ads to line ads"
has a new value "1" to convert only one-column display ads to line ads.
As before, the value "T" converts all display ads to line ads,
and the value "F" leaves display ads as display ads.
This option takes effect in the Import->Read step as ClassPag loads
the sort file.
* The product configuration screen "Request Checking"/"Comprobar Solicitudes"
has a new field "Show House Ads in House Ad Color"/"Mostrar avisos de casa en
color de HOUSE_AD" to control how ClassPag display ads with the HOUSE_AD flag.
The default value of "Y" displays them in the color for house ads.
The value of "N" allows the classification color to override the house ad color.
Note that if classes have an empty color, they inherit that color from their
parent class, so to let the box or border color of house ads show, you must
leave leave it unset in the class color for the class and all of its ancestors.
* Fixed some valgrind memory access warnings when scanning document comments
to print pages.
NOTE: This version has over 1500 lines of changes from the previous version.
3/3/03
Version 3.24
* The "Show Ad Preview Images" product configuration field has a new value "I"
to show ad preview images without writing descriptive text over the images.
As before, the value "T" shows text over the images, while the value "F"
shows only the text, even if the image exists.
* The window to "Paste a filler" now lists fillers in order by their name.
It used to work like the "Paste a filler by wid" window and show fillers in
order by size, except that in the detail lines, it would show the name before
the size.
* Added a new "Paste a filler by name" window that works like the old
"Paste a filler" window with fillers in order by size but with their
names first on the detail lines.
* The "List Fillers by" product configuration variable has a new
"NSIZ" value to show fillers name-first sorted by size (using
the new "Paste a filler by name" window).
* Fixed the "Paste a filler by wid" window so that it lists fillers sorted by
width and then by height. It used to sort the height as a text string, so a
4X10 filler would appear between 4X1 and 4X2 fillers instead of before 4X9
fillers.
* Fixed the "Legal Classes and Types" section of the product configuration
to allow type "H".
NOTE: This version has about 900 lines of changes from the previous version.
3/18/03
Version 3.25
* ClassPag now justifies and adds fillers to square-offs positioned from
the top of the page.
* ClassPag now supports OPI inclusions of EPS files with bounding boxes
that do not set the lower left corner of the image to the origin.
ClassPag now works with OPI files produced by Helios OPI Version 2.0.
* ClassPag now uses the real number values in the optional ALDImageCropFixed
line of OPI comments when it is present. ClassPag used to use the
ALDImageCropRect OPI comment which has only integer values.
The Adobe OPI 1.3 specifications note that "in real-world jobs, the difference
between using %%ALDImageCropRect and %%ALDImageCropFixed is either difficult
or impossible to detect."
* ClassPag now tries to locate OPI images by taking the file name as given in
the OPI ALDImageFileName comment, replacing all of the colons with slashes,
and adding a leading slash if needed. For example, if ClassPag find the
OPI reference
%ALDImageFileName: ClassStore01:raw:ClassArt:39:officeteam reversed
it will try "/ClassStore01/raw/ClassArt/39/officeteam reversed"
before searching for "officeteam reversed" in $COMP_LOGO.
For OPI servers with a large number of directories, as in this
example where the "39" is one of 100 directories from 00 to 99,
this avoids the need to create a huge search path in $COMP_LOGO.
* The dialog window to confirm copying a work area now includes the
edition-wide leading and the minimum and maximum per-page leading.
The window used to show only the edition-wide leading, and that could be
confusing to people who change the per-page leading but leave the edition-wide
leading at 100%. The actual leading on any page is the product of the
edition-wide leading and the per-page leading on that page.
* The classification "Randomize" field and the corresponding product
configuration "Legal Class Type" fields have a new value "Z" to specify
horizontal pagination similar to "H" except that the scan to place an ad uses
the entire page and not just forward from the current pagination column.
Also, with "Z", when ClassPag spans a multi-column ad over a gap, it will pack
the gap with fillers. This helps produce pages with ads in a rectangular grid.
* With horizontal pagination, enabled by a classification "Randomize" setting
of "H" or "Z", ClassPag is now more careful about not shifting columns of ads
out of classification by placing fillers below them.
* The dialog for folio expression errors now includes the folio id and side
to make it easier to locate the incorrect folio entry.
* Improved the formatting of folio debugging messages.
The messages compress multiple spaces to improve the justification of the line.
The messages mark the error position with a caret (^) embedded within the
line instead of showing the line and then a line with a single caret below.
* The mergeint program (which the ClassPag import uses to combine interface
files in "merge" subdirectories) now handles eps files without nulls after
the prolog and trailer and eps prologs with small differences.
The mergeint program extracts the prolog and trailer from the eps file based
on the offsets in the sort file header if the offsets in the sort file header
look valid and if the eps file does not have a null close to the position
specified in the sort file header. Otherwise, the mergeint program extracts
the prolog and trailer at nulls as before.
When the mergeint program scans the eps prologs to check if they are the same,
it tracks when it is inside postscript comments and postscript string literals
and permits differences inside them. This saves the merge program from copying
the prolog for every ad if the only differences are time stamps or job names.
These changes allow the mergeint program to work with SII files.
* Rebuilt the reports to show a 2003 copyright.
NOTE: This version has over 1900 lines of changes from the previous version.
NOTE2: The tests for placing fillers in square-offs at the top and the
changes to horizontal pagination need testing.
3/31/03
Version 3.26
* The product configuration field "Check Color Requests"/"Comprobar solicitudes
de colores" on the screen "Request Checking"/"Comprobar Solicitudes" has a new
value "R" to calculate color conflicts based on the requested colors from the
page information from Cmd -> Pages ... -> Modify the color.
The default value "T" checks color conflicts works as before where ClassPag
looks at both the colors from the page information plus colors of ads already
placed on the page.
The value "F" disables checks for color conflicts, as before.
* The product configuration screen "Ad and Class Conversions"/"Conversion de
avisos y clases" has a new field "Sort file color flag position"/"Posicion en
sort para colores de avisos" to set the 1-based location of a site-specific
color flag in the sort file. The field in the sort file should have either
the character "P" for process color ads or "B" for black-and-white ads.
The sites passing this flag usually place it in column 110.
When the color flag position is set, ClassPag ignores the sort file color code
in 0-based columns 118 to 119 (because the site-specific color flag takes
priority) and the target ad in 0-based columns 108 to 117 (because the
site-specific color flag overlaps it).
Also, when the flag is set, ClassPag does not attempt to read color
information from EPS files of ads marked as black-and-white.
They will not create color conflicts, and ClassPag will not produce
color separations for them. The only exception is that if an ad marked
black-and-white is on a page that requires color separations, if the EPS
of the ad says that the ad has color, ClassPag will include the ad on
the color plates.
* menprof.sh and runcpag.sh now have "reset" options to clear some ClassPag
environment variable before restarting. This should make it easier to switch
between areas. For example, if you have /u/cpag and /u/cpagtest areas, and you
log in to the /u/cpag area, you can now exit to a command line, change directory
to /u/cpagtest and run the test version with "./runcpag.sh reset".
Without the reset option, the script would rerun the version of ClassPag from
the /u/cpag directory because the CPAG_ environment variables still point there.
If you start ClassPag through an X connection script that creates an xterm
window (instead of running menprof.sh or runcpag.sh) or if you log in through
telnet, another option is to comment out the end of the .profile script that
runs ClassPag. You will then get a normal shell prompt when you log in, and you
can run ClassPag from any account by changing into the top level directory of
that account and running the command "./runcpag.sh".
menprof.sh parses its command line options and locates and runs profile.sh.
profile.sh sets LOGNAME and MAIL, runs setup.sh, and then runs runcpag.sh.
setup.sh sets environment variables needed by ClassPag.
runcpag.sh runs setup.sh if needed and then runs ClassPag.
dotprof.sh locates and runs profile.sh.
.profile can be copied from dotprof.sh.
If you have /u/cpag and /u/cpagtest accounts, if all of the users log in as user
cpag, it is easier to make all of the files in both accounts owned by user cpag.
The X connection scripts for the accounts can both log in as user cpag, but one
should run "/u/cpag/menprof.sh" and the other should run
"/u/cpagtest/menprof.sh".
Older operating systems let you create multiple users with the same user id,
so you could create both "cpag" and "cpagtest" logins that could share files.
On current operating systems, each user account must have its own user id.
If several users must share the same ClassPag files, either the users must
share the same account or else the ClassPag directories must be world
(or group) readable and writable.
* loadtape.sh now runs "initscr.sh -c" to prevent the warning
formula: open_file failure: stat = 12
+ file name = '$SCRATCH/book'
at the end of the update procedure if the current work area is empty.
* pstoepsf.sh not retries gs with "showpage" if the first attempt to
produce a preview did not create an output file. This allows pstoepsf.sh
to work on EPS files that do not contain a "showpage".
* pstoepsf.sh now takes the first BoundingBox line in the file.
It used to get confused if there was a second BoundingBox line within the first
50 lines. This makes pstoepsf.sh work better on banners created by ClassPag.
* pstoepsf.sh now shows more information with "-x".
* fixperm.sh has a new -echo option to echo the chmod, chown and chgrp
commands without running them.
* scanps.sh with the -gs4 option now uses /usr/local/bin/gs if it is present
and if /usr/local/bin/gs4 is not. On newer systems where building gs2 is not
an option, we usually do not make separate gs2 and gs4 scripts.
* If setup.sh sees a script called "xset", it tries to rename it to "xset-".
setup.sh depends on the unix xset command to check whether the SCS fonts are
on the font path.
* Improved vertical justification above multi-column locked and manually
placed ads positioned from the top. This should improve the justification
inside square-offs positioned from the top of the page if the page is locked.
* Improved vertical justification when an ad stack contains a single column
ad over a single column class header over a single column line ad over a
multi-column ad. This can happen along the bottom of square-offs positioned
from the top of the page. ClassPag used to leave the line ad alone to preserve
its spacing from the class header. ClassPag now brings the line ad and class
header down to their specified leading above the multi-column ad and distributes
the extra space among the ads above the class header.
* Fixed a problem with back-to-front square-offs (square-offs that start on the
left side of the page and have their overflow on the right) where the initial
calculation would not account for the leftmost class header if all of the class
headers were marked as copy headers (which can happen with some configurations
for SII interfaces) and the square-off required class headers at the top of each
column under the top banner. All columns except the leftmost column would have
extra space by the height of the class header in the leftmost column.
* Fixed a problem where multi-page square-offs that contained line ads would
not leave room for a banner on editions with templates.
* Fixed a problem where ClassPag would sometimes float templates.
* Fixed a problem where a square-off positioned from the top in the same
column range as a template banner would sometimes embed the banner within
the square-off.
* Removed quotes around the word "Product" in the messages to rebuild banners
and folios.
NOTE: This version has 1984 lines of changes from the previous version.
4/8/03
Version 3.27
* The product configuration screen "Display Ad Dummying Style"/"Estilo de
Diagramacion de Avisos Destacados" has a new field "Place Fillers on Overflow
Pages"/"Poner en paginas de exceso" to control whether ClassPag fills overflow
pages. The default is "Y" to fill overflow pages using vertical justification
and fillers. Set this field to "N" to leave the overflow ads along the bottom
of overflow pages. This reduces clutter on overflow pages if you will never
need to print them.
* ClassPag can now produce different output for ads with missing images
compared to ads without an image. The spread database has a new field
"Show Ads Without Images As"/"Ver avisos sin EPS como" with the same
"BLACK", "WHITE", "TEXT" and "JTEXT" values as the field
"Show Missing Images As"/"Ver avisos faltantes como" and defaults to
that field if it is empty.
You can use the new fields to show descriptive information for ads missing
EPS files and white blocks for ads created as reservations, for example,
by setting "Show Missing Images As" to "TEXT" and "Show Ads Without Images As"
to "WHITE".
Ads with missing images are ads (or headers, banners or fillers) that have a
link to an EPS file, but the EPS file is missing. Ads without images are ads
(etc.) that have no link to an image, either because their "image file name"
is empty or because their "image type" is "None" instead of "Internal" or
"External". This is the same test used by the "PS Type" values of "BLOCK"
and "RBLOCK".
* Fixed a problem where the 4GL formula to list save areas would not reload the
current product information. In products with expressions to calculate the save
area, this could cause ClassPag to evaluate the expressions based on the last
product that you imported instead of the current product.
NOTE: This version has 1872 lines of changes from the previous version.
5/6/03
Version 3.28
* The Cmd -> Remove menu has two new commands.
"Remove to first page"/"Quitar hasta primera pag" removes ads on all pages
from the start of the session to the current page.
"Remove to last page"/"Quitar hasta ultima pag" remove all ads from the
current page to the end of the session.
The old command "Remove to end"/"Quitar hasta fin" is the same as
"Remove to the first page" if you are paginating back-to-front and
"Remove to the last page" if you are paginating front-to-back.
The new commands might be helpful when clearing out ads at the start of
a session, but you would never want to use them in the middle of a session
because the one that works the opposite of "Remove to end" will remove all
of the ads that you have positioned.
* When ClassPag builds a square-off with line ads, if the square-off ends up
at a size with no banner, for example, if there is a tall line ad that forces
the square-off to be so tall that ClassPag can not stretch the square-off to
the requested number of columns, ClassPag will try to build the square-off
for a smaller width that has a banner.
* Improved the commands that display ads with their bounding boxes.
The reservation box is now a 1/2 point blue line instead of a 2 point black line.
The eps bounding box (if present) is now a 3/4 point dashed red line instead of
a 3 point dashed black line. Also, ClassPag now draws the boxes over the ad
image instead of below it so the ad can not cover them.
These changes make the boxes more precise and more visible.
* The preview menus Cmd->Ads and Cmd->Ads->FindAd->F12 each have a new option
"View an ad and its box"/"Ver un aviso y su caja" to show the current ad with
its bounding box.
* The "view boX" button now also shows the bounding box.
If this becomes a problem, it can be undone.
* Added a -keeplog option to rcpuniq.sh to preserve the file "ftpmac.log".
The script normally removes the log file is the ftp command ran successfully.
* Added a -hash option to rcpuniq.sh to show ftp hash marks.
The script used to show hash marks only with the -xterm option.
* Added a flatten.sh script to convert cardex and outext files from several
card images (i.e. lines) per ad to one line per ad. The script pads each
card to 80 columns and then appends all of the cards for each ad.
This should simplify interfaces that can import text files one line per
record and with fixed format fields. The syntax is
flatten.sh [ options ] inputfile outputfile
where the options are
-c convert a cardex file instead of an outext file
-o convert an outext file [default]
-s skip the header record
-t skip the trailer record
-h show a help message
* The checkbb program can now locate the BoundingBox line in Adobe Illustrator
files that contain the line "%AI9_PrintingDataBegin" with a single percent.
It used to stop parsing the header at that line.
* When ClassPag places display ads in square-offs in positions pre-calculated
by the packing procedure, it no longer checks for color conflicts.
This prevents square-offs from coming apart if you force a square-off with
a color ad onto a non-color page.
* Added a "useradd.sh" script in the interface directory to create a "cpag"
account. To run the script, as root, go to the /u/cpag directory and run
"./interface/useradd.sh" to print the useradd command. If the results look OK,
run "./interface/useradd.sh -r" to run the command. After creating the account,
set the password with "passwd cpag" and then enter the password.
* When ClassPag is configured to shows house ads in house ad color, if the house
ad has a conflict, ClassPag shows the conflict color instead of the house ad
color. This makes it easier to find house ads that are missing EPS files.
* Fixed a problem where ClassPag could miscalculate the size of the top line
ad in a column when paginating back to front. This could cause the ad to
be too low on the page. This could only happen on products with an ad
configuration that set the leading between line ads less than the default
leading in the product configuration, and an additional ad could fit in a
column after ClassPag did a look-ahead using the default leading.
* The commands to remove ads in a page range no longer ignore overflow
pages with negative page numbers.
* Fixed a problem in back-to-front pagination where ClassPag would place
class headers over banners at the top of the page. ClassPag no longer
places headers if the distance from the banner to the top of the page
is within the "Min Flow Depth over Banners" in the "Agate Ad Specifications"
screen of the product configuration. This condition could happen on
editions that have folios embedded in the page area.
* Fixed a problem where square-offs positioned at the top of a page
would sometimes have their depth increased with fillers. This problem
was introduced in the vertical justification change in version 3.26.
* Fixed a problem justifying ads in square-offs positioned at the
top of a page. This is also from version 3.26.
NOTE: This version has over 3500 lines of changes from the previous version.
5/8/03
Version 3.29
* When the product configuration field "Place Fillers over Bottom Ad"
is set, ClassPag now places agate fillers over display fillers.
It used to place agate fillers over only display ads.
NOTE: This version has about 10 lines of changes from the previous version.
5/12/03
Version 3.30
* Improved the postscript page setup in the files that ClassPag produces
when you view an ad. ClassPag now writes the prolog in the same order
as when you view a page. This should fix problems with postscript errors
when viewing internal ads with some interfaces.
* The preview menus Cmd->Ads and Cmd->Ads->FindAd->F12 each have a new option
"View an ad, actual size"/"Ver aviso, tamano real" to show the current ad
at its actual size. This can be useful to check the sizes by using drags
in ghostview or by printing the file.
NOTE: This version has about 200 lines of changes from the previous version.
5/13/03
Version 3.31
* When ClassPag writes %%Page comments in postscript files, it now writes
the page identifier as the folio page number instead of the ordinal of
the page in the file. Also, if ClassPag is making separations,
it appends the first letter of the color to the page identifier.
This should make page number display on RIPs and in ghostview more useful.
* When ClassPag writes separations, it now writes a %%PlateColor comment
immediately after the %%Page comment. Some RIPs require on a %%PlateColor
comment to handle separated pages correctly.
* Paper entries have four new fields "CMYK Screen Angles"/"Angulos para CMYK"
to set the screen angles for cyan, magenta, yellow and black. They currently
have effect only when "Create Separations" is "T", "YES" or "REQYES".
The values may range from 0 to 360. If a field is empty, ClassPag will not
change the screen angle. You should either set all of the fields or
leave all of the fields empty.
The standard screen angles are black 45, magenta 15, yellow 0, and cyan 75.
(The halftone screens are on a grid, so 105 is the same as 15, and 90 is the
same as 0.)
The darkest color should be 45 to keeps dots from lining up as you look down the
length of the paper. The two next darkest colors should be 30 degrees different
from the darkest color, so magenta is 15 (45-30) and cyan is 75 (45+30).
The lightest color is 0 to keep the maximum separation from the other colors.
NOTE: This version has 450 lines of changes from the previous version.
The changes to the postscript output need testing to be sure that they
do not cause problems on any RIPs.
5/16/03
Version 3.32
* The product configuration screen "Ad Loading"/"Cargar de Avisos" has a new
field "Sort File Image Name Expression"/"Expresion para nombres de imagenes de
sort" with a macro expression to preprocess external file names in the sort
file. The expression has access to the variables AdNumber (the ad number),
ClassName (the classification), and FileName (the external file name).
ClassPag replaces the external image name with the return value of the
expression. If the first non-empty external name produces an expression error
or returns an empty string, ClassPag displays an error message and will not
attempt to process any other external names.
For example, if external file names have the format 0123456789-01 and you
need to reduce them to 10 characters by taking the last 8 characters before
the dash and the 2 characters after the dash, you can use the expression
f$extract(2,8,FileName) // f$extract(11,2,FileName)
NOTE: This version has over 170 lines of changes from the previous version.
6/2/03
Version 3.33
* Added a -epscrop option to pstoepsf.sh to pass the -dEPSCrop option to
ghostscript to use the bounding box of the eps file and to write a bitmap.
Use this option if the tiff preview is the size of the workspace instead of
the size of the bounding box. This option is currently not enabled by default.
If it does become the default, use -noepscrop to disable it.
EPS pages produced by ClassPag should not need this option, but it can
be useful when using pstoepsf.sh to add previews to other EPS files.
This option requires ghostscript release 7.32 or later.
* The product configuration screen "Ad Loading"/"Cargar de Avisos" has a new
field "Cardex Class Header Description Prefix"/"Prefijo para cabezales en
cardex" to set a string in the cardex ad description field (line 1, columns
11-30) to mark class headers. For example, this field is set to "INDEX",
ClassPag will treat any ad with a description containing the string "INDEX"
as a class header instead of a display ad. This can be useful for interfaces
that send class headers in cardex files. If the field is empty, ClassPag
converts every cardex entry into a display ad as before.
* The "Auto Segment Ads" field on the "Legal and Segmented Ad Specifications"
screen of the product configuration has a new value "IW" to segment IslandWrite
ads created by VisionData.
* Added support for setting SPICE_APP for systems with a version of spice
from April 10, 2003, or later. The ClassPag setup.sh script runs the script
altspiceapp if it exists. The distribution contains a sample script called
altspiceapp.sh. After installing the SCS tools, you should copy this sample
script to altspiceapp and then edit altspiceapp to set SPICE_APP as needed.
If SPICE_APP is not set, the setup.sh script will set it to "cpag" if
a directory "/u/scs_cpag" exists, otherwise, the script will it "all".
The ClassPag loadtape.sh script runs the old setup.sh, so if you update the
tools before updating to this version of ClassPag, and if you do not have a
/u/scs/set_default_spice_app file, you will need to set SPICE_APP in your shell
before running loadtape.sh.
* Added a tarbanners.sh script to create a compressed tar archive of images
referenced in a set of bannerad transactions. This can help gather EPS
files to copy to another system.
* Composition now has an additional single letter application code that keys
formats. If the style parameter to compset starts with a capital letter, the
letter is used as an application code and the remainder is used as the style.
ClassPag has a number of places where it places where you can enter a default
format. Since format names are not case sensitive, you should make sure that
they are entered as lower case in the ClassPag product configuration, banner
and folio fields.
* Before ClassPag finishes, it now removes any core files created by other
applications. This prevents crashes in other programs that ClassPag runs
from making the runcpag.sh script think that ClassPag crashed instead.
* The View Page button now uses the option to remove postscript comments
only if the "Remove DSCs (PS comments)" in the paper entry for "Screen"
is set to "N". It used to remove them in all cases, which could sometimes
cause problems if an ad had a binary image that just happened to look
like a comment.
NOTE: This version has over 1600 lines of changes from the previous version.
6/13/03
Version 3.34
* ClassPag can now show a list of missing ads and logos when you view
or print pages. If any files are missing, ClassPag shows an "Images"
option along with the "View", "Print" and "Done" options.
If you select "Images", ClassPag will open a list of ads with missing
images. The list shows the ad number and the file name of the missing
image or logo. If the ad is a filler or header and appears more than
once on the page, ClassPag will show "(#X)" after the file name where
"#" is the number of times that the ad appears on the page.
If the file name is an OPI call, ClassPag will show "(OPI)" after the
file name.
Note that if you use a "Paper" entry with a "PS Type" of "FPS",
ClassPag will not attempt to read inside EPS files and will not
detect OPI references.
* Improved the setup.sh message when the font server is local from
"Found scs unix/:7100" to "Found font server unix/:7100".
* ClassPag now searches for netscape and other browsers in /usr/dt/bin.
Sun Solaris installs some X Window applications there.
* The setup.sh script now looks for a SPICE_APP area based on the current
directory before checking "cpag" and "all". For example, if you have
a cpagtest account, if you install a version of spice into /u/scs_cpagtest,
the cpagtest account will use that version of spice.
If you copy or rebuild /u/scs_cpag directories, remember that they contain
data for the printer interface and menu system, so you should check that
the directory that you are copying from has a good copy of that data.
The "all" area in /u/scs contains data for the environment manager and
for composition. Copying /u/scs_cpag directories does not affect it.
* Changed menprof.sh to check for the ClassPag home in `dirname $0` before "."
and "../cpag". This will fix problems in logins to test accounts where
menprof.sh could /u/cpag before the test account.
* Added scripts to backup using rsync based on the scripts from SCS Track.
Copy the four cpag_*.sh scripts to /etc/mirror and make the test script
executable, and then copy the C75cpag.sh script to /u/scs/maint/cleanup.
You can use these scripts in dedicated ClassPag installations or at
installations where the ClassPag and Track servers back each other up.
These scripts have different names than the Track scripts so they
can all be in /etc/mirror at the same time.
cpag_mirror_conf.sh contains the setup.
This file must be customized on each server.
Set the variables below:
THIS_NODE is the node name of this server on the public network.
OTHER_NODE is the node name of the other server on the public network.
SHARED_IP is the shared IP that is taken by the controlling system.
The copy will run only from the system with this IP.
If ClassPag has its own shared IP, use that number.
Otherwise, use the number of the ClassPag primary server.
SHARED_NETMASK is the netmask of the network with the shared IP.
SHARED_BROADCAST is the broadcast of the network with the shared IP.
The netmask and broadcast of the shared IP should match the netmask
and broadcast of the non-shared IP on the public network.
ETHNET_ALIAS is the interface with the shared IP (usually eth0:0).
OTHER_ROOT is the root to copy the directories on the other server (usually /).
MIRROR_DIRS is the list of directories to mirror (usually /u).
cpag_mirror_exclude.sh contains a list of files and directories to exclude,
with one name per line. This file should be customized for each installation.
An example is the single line
/u/test/*
to exclude files in the directory /u/test.
cpag_mirror_test.sh tests to see if this is the live system.
This script should not be modified.
cpag_copy_fs.sh runs the rsync command to do the copy.
This script should not be modified.
C75cpag.sh is a sample nightly SCS cleanup script.
It should be copied into /u/scs/maint/cleanup.
It runs cpag_copy_fs.sh and logs the output to /u/cpag/root/log/cleanup.log.
The SCS maintenance cron job will run the script each night.
This script should not be modified.
To test the process, open two xterm windows on the primary server.
In one window, login as root and run the C75cpag.sh script.
In the other window, after you start the script, run
tail -f /u/cpag/root/log/cleanup.log
to watch that the script is not doing anything bad.
The C75cpag.sh script redirects all of its output to that log file.
You should do the same on the backup server and check that the script
exits without doing anything.
NOTE: This version has over 2200 lines of changes from the previous version.
This version has valgrind warnings in the spice debugger during ClrTable calls
and should be used only for testing.
6/19/03
Version 3.35
* The product configuration screen "Ad Import Restrictions"/"Restricciones de
Importación de Avisos" has a new field "Helios OPI"/"de Helios" to support OPI
references generated by Helios OPI servers. Set the field to "Y" to enable
scanning for Helios OPI references. The default of "N" skips over Helios
OPI references as before. Helios OPI references have the format
%%HeliosIncludeEPS: "/unix/path/to/logo/eps/file"
If possible, you should use NFS mounts and symbolic links on the ClassPag
server to match the paths in the Helios includes.
In order to use this option, in this release only, you must set
the product configuration field "Check for ALD OPI comments" to "Y"
and you must print with a paper entry with "Remove DSCs" set to "N".
* loadtape.sh shows a warning if it finds a file ".bash_profile".
If .bash_profile is present, bash will run it instead of .profile.
* Added a memdbg parameter to runcpag.sh to enable SCS memdbg
with specially-built versions of ClassPag.
NOTE: This version has over 330 lines of changes from the previous version.
7/4/03
Version 3.36
* The ad configuration database has a new field "Min Leading"/"Min Interlineado"
to set the minimum leading between two types of ads. This leading is not
multiplied by the leading percentage and can not be eliminated by squeezing a
page. Interfaces that pass line ads with images that write outside if their
reservations can use this value to ensure that ads do not run into each other
on squeezed pages.
* The product configuration screen "Vertical Spacing Specifications"/
"Especificaciones de Espaciado Vertical" has a new field "Justify
Proportionally"/"Justificar Proporcion." to control the vertical justification
between ads in a column. The default value of "Y" places more space between
larger ads, which is what previous versions of ClassPag did.
Proportional spacing creates a more consistent visual density than fixed spacing.
The value of "N" divides the space evenly between the ads in the column,
which can be helpful on tight editions to ensure that small ads get as
much leading as large ads.
In addition, ClassPag normally limits the extra space below class headers
to keep them visibly associated with the first ad in their class.
With proportional spacing disable, ClassPag places almost as much
justification leading below class headers as below other types of ads.
This creates more space below class headers and can help when the EPS for
class headers draws outside of its reservation.
* The product configuration screen "Top of Page Horizontal Rule
Specifications"/"Especificaciones de Linea Horizontal a Traves de la Pagina"
has a new field "Smart Rules"/"Lineas Listas" to control how ClassPag draws
horizontal cut rules. The value if "N" draws black rules as before.
The value of "Y" draws additional white hairlines above and below the rules
to create a separation between the rules and graphics in ads.
ClassPag now draws horizontal cut rules after drawing all of the ads.
It used to draw the rules as it drew the ads.
* When ClassPag imports ads or loads fillers and banners, if an ad height
is a centipoint above a quarter, third, half, or three-quarters of the page,
ClassPag reduces the size of the ad. This should help fix stacking problems
due to rounding in the conversion to centipoints.
* Increased the file name length in the ad database from 30 to 50. The file name
in the sort file is 30 characters, but the sort file usually contains just the
base part of the file name, and ClassPag needs extra room for the directory, for
example, "/u/displayads/" and an extension, for example, ".eps".
* The command to view conflicts from Ads -> Check for conflicts
has a new "MissingEPS" option to check for missing eps files and missing opi
calls to logos. The "No" option just checks for position conflicts (like saying
"No" on the old dialog). The "Internal" option includes the checks for the "No"
option plus it checks that internal ads start correctly (like saying "Yes" on
the old dialog). The "MissingEPS" option includes the checks for the "Internal"
option plus the scan for missing ads and logos.
* The command to view conflicts from Ads -> Check for conflicts
has a new "BoundingBox" option to check the bounding box of internal ads.
This option includes the checks for the "MissingEPS" option.
You can use this scan to verify that internal ads match their reservations.
The scan takes about 1/2 second per ad on a 1.6 GHz Pentium.
The scan requires a version of ghostscript with the "bbox" device.
You can run "gs -h" to view the list of devices built into ghostscript.
ClassPag checks the list of devices and does not do the scan if gs
does not have the bbox device.
* The command to view conflicts from Ads -> Check for conflicts
now displays a count showing the total number of ads, the number of ads
processed so far, the number of conflicts found so far, the number of
seconds of run time, and the expected number of seconds until completion.
You can cancel the scan with a Control-C.
It might take a few seconds for the system to notices the Control-C
and you sometimes helps to press it a few times.
* Increased the conflict description from 30 to 60 characters.
This allows the description to hold file names.
* The window to view conflicts from Ads -> Check for conflicts
has a new option "View Reason" to view the reason and description.
This displays the entire file name if it is too large to fit on the
line in the list window.
* The various commands to view single ads or to convert them to PS or EPS now
add the position adjustment. This should do a better job when converting
internal ads into stand-alone EPS files.
ClassPag adds an %%XIgnorePositionAdjustment comment in the header of the EPS
file to warn it to ignore the position adjustment when processing the ad a
second time. This prevents giving ads a double dose of the position adjustment.
* Fixed the Helios OPI includer so that it does not require enabling
ALD comments and disabling "Remove DSCs".
* Fixed a problem where ClassPag would not download all of the fonts requested
in the product configuration. Since version 3.32, each font line has used the
download flag for the next font line.
NOTE: This version has over 7000 lines of changes from the previous version.
NOTE2: The minimum leading needs testing that it does not drop class headers
or break square-offs or segmented ads.
7/10/03
Version 3.37
* The square-off setup screen now has a new field "Lead"/"Int" to control
whether ClassPag adds leading when it rebuilds the square-off. The default
value (leaving the field empty) uses the value of the product configuration
field "Add lead when placing ads in square-offs" on the screen "Display Ad
Specifications (Continued)".
The value of "N" builds the square-off without leading.
The value of "Y" builds the square-off with leading.
In general, square-offs with all display ads should be built without leading
while square-offs with flowed-in line ads should be built with leading.
* The product configuration screen "Ad Import Restrictions"/"Restricciones de
Importacion de Avisos" has a new field "Remove resolved OPI comments"/"Borrar
comentarios OPI resuelto" to remove OPI comments for resolved OPI calls, whether
they were resolved by ClassPag or were already resolved in the EPS file for the
ad. Use this option if you have problems with OPI servers replacing OPI calls
that have already been resolved. When ClassPag resolves Aldus OPI comments,
it places the image inside %%BeginObject/%%EndObject comments, so most OPI
servers can recognize when ClassPag has resolved an OPI call.
* The product configuration screen "Agate Ad Specifications (Continued)"/
"Especificaciones de Avisos Agate (continuado)" has a new field "Paired Class
Look Ahead"/"Poder Ver Adelante Entre clases apareadas" to control how many
classes ClassPag can scan to fill a hole during paired pagination (classes with
a Randomize value of "P"). The default is to scan classes until exhausting the
agate ad look ahead count. If the paired class look ahead is set, ClassPag
will stop the scan earlier if it reaches that number of classes.
If you have a lot of small classes and a large agate ad look ahead,
you can set the paired class look ahead to 5 or 10 to prevent ClassPag from
pulling ads too far from their class.
* Improved some of the tests for minimum leading.
NOTE: This version has over 2600 lines of changes from the previous version.
7/16/03
Version 3.38
* The field "Check for ALD OPI comments"/"Probar comentarios OPI de ALD" on
the product configuration screen "Ad Import Restrictions"/"Restricciones de
Importacion de Avisos" has a new value "U" to leave OPI references in internal
ads unscaled if the size of the logo differs from the size specified in the
"%ALDImageCropRect" and "%ALDImagePosition" comments. With the value of "T",
ClassPag follows the OPI specifications and scales and positions logos as
needed. With the new value of "U", ClassPag leaves the logos unscaled.
Some classified systems generate postscript that scales and positions logos
but then also write OPI comments that require the OPI includer to scale
and position the logos also. Most logos start at the 0,0 position and do
not need positioning, but if the logo was scaled, even by a fraction of a
percent, the scaling that ClassPag adds also scales the position of the logo
and causes the logo to shift up or down in the ad.
* The product configuration field "Remove resolved OPI comments" now removes
comments by writing a percent over the first letter instead of just changing
the first letter into lower case. Some OPI includers incorrectly do
case-insensitive scans for OPI comments.
* maketar.sh checks for old files like root/cpag that should not be in the
distribution.
NOTE: This version has over 194 lines of changes from the previous version.
7/18/03
Version 3.39
* ClassPag now writes the run date in YYYYMMDD format in card 3, columns 7-13.
This field is documented as the last run date, and ClassPag used to write all
zeros in it. Having a copy of the run date in each ad record could make it
easier to process outext files.
* ClassPag now writes conflict flags in the outext file.
Page name and requested page conflicts show in the page request flag in card 4
column 16.
Classification conflicts show in the group request flag in card 4 column 18.
Left or right of page conflicts show in the right/left request flag in card 4
column 19.
Coupon conflicts show in the coupon request flag in card 4 column 22.
* ClassPag has options to write additional information in outext files.
The product configuration screen "Outext Export"/"Exportar de outext" has
three new fields.
"Long section name"/"Largo nombres de secciones" writes the section name
in card 4 columns 59-68 instead of the two pyramid sets.
The default is "N" to write the pyramid sets, currently all zeros,
because ClassPag does not use the same bit sets as Layout-8000.
The value of "Y" writes the section name.
"Graphic name"/"Nombres de graficos" writes the graphic name in
card 1 columns 31-40 instead of the account number.
The default is "F" to write the account number, currently all
spaces because the sort file does not pass account numbers.
The value of "T" writes the graphic name.
The value of "A" writes the graphic name, except if the graphic name
is exactly 7 characters and if it does not match the ad number,
ClassPag appends the two digits "01".
ClassPag builds the graphic name by scanning the image file name
and extracting everything from the final slash to the end of the name
or the first dot.
"Ad width"/"Anchos do avisos" writes the ad width in hundredths
of units in card 3 columns 1-6 instead of the alternate height.
The default is "N" to write the alternate height, currently all
zeros because ClassPag does not use descriptive size name.
The value of "Y" writes the ad width.
* runcpag.sh now accepts the option "vg" for "valgrind".
NOTE: This version has 889 lines of changes from the previous version.
7/23/03
Version 3.40
* The sort file position string (0-based columns 102-107) has a new value "CO"
to mark ads with coupons. Previously, only cardex interfaces could pass coupon
flags.
* ClassPag now allows the sort file position string to contain up to three
two-letter position codes. Previously, the field could contain an optional
column number and at most one two-letter position code.
* When "Graphic name" configuration parameter has the value "A" to append
"01" to some graphic names, in addition to the previous tests, ClassPag
appends the "01" only if the graphic name is all digits.
* Fixed a problem where EPS logos created by Adobe Illustrator(R) 8.0 would
sometimes drop out when making color separations with "Create Separations"
set to "YES".
The replacement "setcmykcolor" for black separations used to set the
internal color separation tables and then do "1 setgray" to set the
current gray level to white. It now sets the current gray level to 1-K.
When Adobe Illustrator EPS files detect that they are being separated,
they use the sequence
1 0 0 0 setcmykcolor currentcmykcolor add add add 0 ne
0 1 0 0 setcmykcolor currentcmykcolor add add add 0 ne
0 0 1 0 setcmykcolor currentcmykcolor add add add 0 ne
0 0 0 1 setcmykcolor currentcmykcolor add add add 0 ne
to guess the current separation. For black separations, these all
all used to return "false", which would confuse the Illustrator EPS.
With this change, the final test now returns "true".
* Cleaned up sepbegin.ps. Some variables with common names now
have a "SEP_" prefix, and some unused procedures are now removed.
This should reduce the chance of conflicts with dictionaries in other
EPS files.
* Updated the source and scripts to build under Windows.
NOTE: This version has 817 lines of changes from the previous version.
About half of the changes are in postscript support code for color separation
and need careful testing.
7/29/03
Version 3.41
* The Paper database has a new field "Frequency"/"Frecuencia" to set the screen
frequency for halftones in separations. If the field is empty, ClassPag does
not modify the screen frequency, and the page will be printed with the RIP's
default value. The default screen frequency is typically between 100 and 150
lines per inch.
* The product configuration screen "Agate Ad Specifications"/"Especificaciones
de Avisos Agate" has a new field "Boxed Position Adjustment"/"Ajuste de Posicion
si Caja" to set an alternate position adjustment for internal boxed ads in SII
interfaces. The scan look for the SII "rect" command close the start of the ad.
Some SII interfaces need a position adjustment to center normal line ads in
their reservations, but they do not need a position adjustment for boxed ads.
If this field is empty, it defaults to the position adjustment for normal ads.
Otherwise, if it has a value, even 0, ClassPag uses that value.
This field has an effect only on SII interfaces. It may have unpredictable
results on non-SII interfaces and should be left blank on them.
* The "Remove resolved OPI comments" configuration now overwrites the first
character of an OPI comment with a space instead of a percent to avoid making
lines that look like document structuring comments.
* setup.sh now adds the current directory to the PS1 shell prompt when running
under bash.
* Additional cleanup to sepbegin.ps.
* ClassPag now allows EPS files with tiff previews added to files that already
have tiff previews. This can happen sometimes when running a set of EPS files
through a script that adds previews if the script does not check to see that
the EPS files do not already have previews.
* Fixed problems with the reports to scan for missing ads, missized ads,
and killed ads and the report in the statics screen under Pages ->
List Position Requests. The reports needed to be recompiled due to the
change to the ad database in version 3.36.
* Rebuilt the help archive cpagh-28Jul03.tar.bz2 with updated manuals.
NOTE: This version has 3195 lines of changes from the previous version.
7/31/03
Version 3.42
* ClassPag can now resolve nested OPI calls. The product configuration screen
"Ad Import Restrictions"/"Restricciones de Importacion de Avisos" has a new
field "Maximum OPI nesting"/"OPI nivel maximo" to set the maximum number
of OPI levels. If the field is empty, it defaults to the maximum level
supported by ClassPag, currently 10. ClassPag stops the inclusion when
it finds a file that refers to itself or a previous file, so incorrect
OPI references will not cause problems.
* The ad conflict report has two additional messages types,
"MAX_OPI_NEST" for ads with OPI nestings deeper than the maximum level,
and "RECURSIVE_OPI" for ads with OPI references that refer to themselves
or to previous files.
* When ClassPag is scanning for Helios OPI calls, it now also check for
"%%HeliosRefID:" comments immediately before "%%HeliosIncludeEPS:" comments.
If ClassPag is removing resolved OPI comments, it will overwrite both
of those comments if it resolves the OPI call.
* The "Remove resolved OPI comments" configuration now overwrites comments
starting "%HELRefID:" and "%%MainImage:". Helios OPI servers use those
comments to identify hi res images.
* The loadtape.sh script has a new -yes option to answer "yes" to the normal
questions.
NOTE: This version has 3397 lines of changes from the previous version.
8/7/03
Version 3.43
* Fixed problems introduced in the previous version that could cause postscript
errors when printing ads with OPI references that contained tiff previews.
* loadtape.sh no longer warns if supplemental install kits (for example,
the ones with sample data) are missing.
* pstoepsf.sh has a new -anyext option to allow input files with any extension.
The default requires .ps .eps or .pdf.
* The "Print Posted Pages" procedure now gets the correct page if you print
the current page or the current spread.
* ClassPag now runs command to copy the outext file in the background instead of
in a window. When it ran in a window, sometimes command lines with more than
one unix command would only run the first command.
NOTE: This version has over 300 lines of changes from the previous version.
8/14/03
Version 3.44
* The product configuration screen "Ad Image Scaling"/"Escalado de la Imagen del
Aviso" has a new field "Rotate"/"Hacer girar" to control whether ClassPag can
rotate ads. The default value is "F" to preserve the orientation of ads.
The value of "T" allows ClassPag to rotate ads to match their reservations.
If an ad and its reservation are both rectangular but one is tall
and the other is wide, ClassPag will rotate the ad 90 degrees.
If the ad is wide and the reservation is tall, ClassPag rotates the ad
counter-clockwise to move the top edge of the image to the left edge of
the reservation.
If the ad is tall and the reservation is wide, ClassPag rotates the ad clockwise
to move the left edge of the image to the top edge of the reservations.
There is no way to tell from the EPS which direction to rotate the ad,
but most rotated ads follow these rules because of the top-down and left-to-right
nature of English text.
* When ClassPag rotates an ad, the "Images" list in the print dialog shows
the rotated ads on the page with the comment "(ROT)" after the file name.
* pstoepsf.sh now checks against adding previews to files that already have a
preview. The new -forcepreview parameter forces it to create an invalid file
with a double preview.
* Added a convertlogo.sh interface script to convert tiff files in a directory
tree into EPS files in COMP_LOGO. The script takes a list of directories on
the command line. It scans the directories recursively.
For each TIFF file in the directories,
the script checks for an EPS file in $COMP_LOGO.
If the EPS file is missing or is older than the TIFF file,
the script uses tiff2ps -e -1 to create an EPS file in $COMP_LOGO.
Before running the script, you should check that
COMP_LOGO is a single directory (and not a search path with colons)
COMP_LOGO exists and is writable
the unix "file" command identifies TIFF files with a line containing
the string "TIFF".
The script takes the parameters
-echo = echo conversion commands [default]
-run = run conversion commands
-eps = add .eps extension to the eps files
-v = verbose
For example, if COMP_LOGO is /u/comp/data/logo/epslogo, the command
/u/cpag/interface/convertlogo.sh -run /scoop/opi/highres
will convert every TIFF file in the highres directory (and directories that
it contains) into eps files in /u/comp/data/logo/epslogo
The EPS files will have no extension, which will work best for ClassPag.
If you are running this script to generate EPS logos for use with SCS Composition,
you can use the -eps option to create files with a .eps extension.
* makelogo.sh now adds the -1 option on the tiff2ps command line to make
eps files that will work better on color separations.
* cleanall.bat now removes *.dat_o and *.idx_o files.
* Fixed a problem from 3.42 where ClassPag didn't like EPS files with previews
where the preview came before the EPS.
* Fixed a test in cpag_mirror_test.sh that could get confused if the IP number
of the primary was a prefix of the broadcast address.
NOTE: This version has over 1500 lines of changes from the previous version.
8/19/03
Version 3.45
* ClassPag now supports the two-letter ad position requests "R1", "R2" and "R3"
to rotate an ad 90 degrees, 180 degrees or 270 degrees clockwise.
* When automatic rotation is enabled in the product configuration, ClassPag only
checks to rotate line ads and display ads. ClassPag no longer rotates banners,
fillers or house ads to avoid interfering with people who intentionally scale
them by large amounts.
* Macro expressions in printer commands can now access the two new variables
PageWidth and PageDepth. The variables contain the width and depth of the page
as a real number in postscript points (72 per inch). The values match the
values in the HiResBoundingBox in the postscript file. You can use these values
to place pages with special sizes (double truck pages for example) in a special
queue or to forward the sizes of EPS files to an editorial system.
* The "HIDE" value for the "Add PS Comments" field in the "Spread" window now
takes over the postscript operators "==" and "print" in addition to "=".
Some MS Word EPS files write information using a mix of "=" and "print".
For example, MS Word with the print driver "PScript5.dll Version 5.2" has a page
feature with debug code that uses a mix of "print" and "=" to generate the
sequence "%%[ ProductName: ", then the RIP name (as returned by the "product"
operator), then " ]%%".
* The printer, paper and spread windows now have a menu option to view log files.
This makes it easier to check the logs after printing a page.
* The paper and spread windows now have a menu option to view the printer names.
This makes it easier to set up new printers.
* When ClassPag decides whether to run printer or outext export commands through
the expression interpreter, it used to check if the command started with a quote
or a left parenthesis. It now checks if the command starts with a single quote,
a double quote, or a left parenthesis or if the command contains the sequence
" // " (space + slash + slash + space).
* rcpuniq.sh has a new -keepcmd option to preserve the ftp input script and the
ftp output log. You can use this to help diagnose ftp connection failures.
NOTE: This version has over 1600 lines of changes from the previous version.
8/21/03
Version 3.46
* Added a BaseBookName variable that is available in expressions that
use BookName. BaseBookName is a copy of BookName with stars, spaces,
and parenthesized text removed. If you build codes into section names,
for example (R) or * for revisions, but you still need a clean version of
the section name, for example in a file name, you can use BaseBookName
instead of BookName. Before this change, you would have to write an
expression to strip codes from BookName or else change section names
to add the code, rebuild the folios, then restore the section names
and print without rebuilding the folios.
* When you rebuild the folios, the rebuild window now shows the range of folios
that ClassPag is building.
* log.sh now runs its command inside parentheses to start a subshell.
It should do a better job of collecting redirections.
Also, to help in testing, log.sh sets CPAG_LOG to "." if it is not set.
Note that if you have multiple commands separated by semicolons,
if you need them logged, you should generate a command
sh -c "command1 ; command2"
* Fixed a problem where long warnings in the print dialog could be truncated.
* Fixed a problem where long print commands could be truncated.
NOTE: This version has over 200 lines of changes from the previous version.
8/22/03
Version 3.47
* fixperm.sh sets the *.out files in scratch areas to world readable and
writable if "domainname" returns a valid name and the name does not look
like scs. This should help with permission problems at sites that send
interface files in a way that leaves them owned by a user other than "cpag"
and does not give them world write permission. When the loadtape.sh install
procedure runs fixperm.sh, it changes the owners of the files to "cpag", but if
they do not have world write permission, the interface procedure will fail the
next time that it tries to send a file. When possible, interface procedures
should log in as cpag, and if that is not possible, the command to start the ftp
server (usually in /etc/inetd.conf) should add "-u 0" to the ftpd command line
to cancel the default umask of 022 that strips group and world write permission.
The test for a domain of scs is to avoid touching sample data at scs, some of
which is intentionally set read-only.
* The "Final Output Device" on the "Paper" form has a new value "S" for a
device that should be full size but should not count as a final output.
It restricts the list of spreads to ones that are full scale,
but it does not set the final output flag when you print pages.
You can use this for full scale proofs or when using the PageWidth and PageDepth
variables in a print command to pass page dimensions to another system.
As before, "T" restricts the list to full page spreads and sets the final output
flag on pages that you print; "F" does not restrict the list or set the flag;
blank values do not restrict the list but set the flag if the spread is full
scale.
* The cancel printing menu now shows ghostscript and ghostview processes.
Some PC X servers have problems if they run out of memory when you zoom into a
page. If the X server causes ghostview to become unresponsive, you can use the
cancel printing menu to kill the ghostview and gs processes.
* The cancel printing menu now checks if it can send signals to the process
before sending the cancel signal. It sleeps 5 seconds before sending a cancel
to give you time to switch screens if you are running on a console with
multiscreens. The new check saves you from waiting if the process is already
killed or if the process is owned by another user.
* The cancel printing menu now has a command to refresh the process list.
You can the refresh to check that the process is really gone.
* The printer, paper and screen windows now have a command to cancel print jobs
or logout other sessions.
NOTE: This version has 361 lines of changes from the previous version.
8/25/03
Version 3.48
* The field "Check for ALD OPI comments"/"Probar comentarios OPI de ALD" on
the product configuration screen "Ad Import Restrictions"/"Restricciones de
Importacion de Avisos" has a new value "X" to leave OPI references in both
external and internal ads unscaled. This is similar to the "U" value, but "U"
applies only to internal ads while "X" applies to both internal and external
ads. The need to use this option indicates an OPI server that violates
Adobe's OPI specifications.
* The product configuration screen "Display Ad Specifications (Continued)"/
"Especificaciones de Avisos Destacados (continuado)" has a new field "Obey page
requests"/"Obedecer Solicitudes para Pagina" to control whether ClassPag
obeys page and position requests for display ads. The default is "Y".
If the classified front-end passes incorrect page requests, you can set this
field to "N" to have ClassPag ignore the requests.
* The "Position"/"Posicion" field in the banner database has a new value "N" for
template banners that are space reservations for folios. The value is similar
to "T" for templates, except that ClassPag will not place them on the first or
last page if the product configuration says to omit folios on those pages.
* fixperm.sh now tries looking for a domain name in "uname -n" if "domainname"
does not return something useful.
* Fixed a problem in the separation dictionary where inverted versions of logos
that used the level 2 dictionary version of the postscript imagemask operator
would not be inverted in color separations.
* Fixed a problem where the "View Ad Directories" browser did not like
directories with embedded spaces.
NOTE: This version has 1970 lines of changes from the previous version.
8/26/03
Version 3.49
* The product configuration screen "Ad and Class Conversions"/"Conversion de
avisos y clases" has a new field "Sort file description length"/"Largo en sort
de descripcion" to specify the length of the combined external file name and ad
description field in the sort file (usually 30 characters from columns 72-101,
counting from 0). The original sort file specifications reserved the remaining
characters for future use. ClassPag reads a position request at 102-107, a
target ad at 108-117, and a color code at 118-119. The default setting on AdMAX,
and some other systems, is to fill the line with the ad description instead of
stopping after 30 characters. For AdMax, you can set this field to 42 (# + 10
character external name + space + 30 character description).
* The "View Ad Directories" browser can now open symbolic links to directories.
* The display ads directory selected when you import ads can now contain
embedded spaces. ClassPag used to combine the directory with the combined
external file name and ad description before parsing for spaces, so everything
after the first space in the directory would end up as part of the description.
In general, you should limit directory and file names to letters, digits and
underscores. Spaces and characters with special meanings (control characters,
quotes, stars, dollar signs, parentheses, question marks, brackets, braces,
semi-colons, less-than, greater-than, etc.) can cause problems.
* ClassPag now supports OPI comments that start "%PCIOriginalFileName".
To tell ClassPag to scan for those comments, in the product configuration screen
"Ad Import Restrictions"/"Restricciones de Importacion de Avisos" set the new
field "Check PCI OPI"/"Probar PCI OPI" to "Y".
NOTE: This version has 1774 lines of changes from the previous version.
9/5/03
Version 3.50
* The Paper entry field "Create Separations" has a new value "SPOT" for
creating spot separations from EPS files with custom spot colors.
Suitable EPS files with spot separations will have CMYKCustomColor comment
like the example below:
%%CMYKCustomColor: 0 .91 .87 0 (PANTONE Red 032 CVU)
If you select "SPOT", ClassPag will create a separation for each custom
spot color on the page. If the page has any templates, ClassPag will
use the process cyan layer.
If you select "YES", ClassPag will create CMYK process separations as before.
For the example above, the custom red has .91% M and .87 Y, so the ad would
appear on the M and Y plates instead of on a custom spot plate.
* Fixed a problem where the color separation dictionary would drop
custom spot colors when generating process color separations.
* When ClassPag tries to open logos with an MSDOS-like path of "X:\path\logo",
it now tries "/X/path/logo" and then "/path/logo". This should work better
with MSDOS-based OPI servers.
* I rebuilt pnmtotiff for Linux to fix a problem where it would emit a message
starting "Incorrectly built binary which accesses errno" under RedHat 9.
* Added a findformversion.sh interface script that shows the current version of
spice and the required spice version for the various xfm files.
NOTE: This version has 989 lines of changes from the previous version.
9/10/03
Version 3.51
* Macro expressions for template file names and print commands can now use the
variables NumAcross, NumDown and SpreadType. The variables contain the values
of "Pages Across", "Pages Down" and "Pair as Tab Spreads" fields on the Spread
entry used to print the page.
NumAcross and NumDown are numeric. For a single page, they are both 1.
For a tab spread, NumAcross is 2 and NumDown is 1.
SpreadType is the value in the "Pair as Tab Spreads" field, currently
one of "", "T", "F", "NO", "PAIR", "INVPAIR" or "ROTPAIR",
In addition, template file name and print command expressions can use
the variables PageNumColumns, LeftColumnAdjust and RightColumnAdjust.
On print commands with more than one page per file, the variables
correspond to the first page in the file.
You can use these variables to select alternate templates for tab spreads
or to send tab pages to an alternate print queue.
* Missing templates now appear in the list of missing ads under the
"Images" button when you view or print a page. This makes it easier
to diagnose missing templates.
* Increased the length of spot color names from 10 characters to 40 characters.
Applications that generate Pantone names often need over 20 characters.
* When ClassPag generates spot separations with "Create Separation" set to
"SPOT", if a DCS file has a plate for the current separation, ClassPag will
use the spot plate instead of filtering the composite through the separation
dictionary. Plates in DCS files use the Level 2 dictionary version of the
image operator, which is not legal in non-DCS files.
NOTE: This version has 1155 lines of changes from the previous version.
9/11/03
Version 3.52
* Macro expressions for template file names and print commands have can now
use the variables PairPageNumber, PairBookName and PairBookPageNumber.
If the current page can be paired with another page in a tab spread,
these variables contain information about the paired page.
PairPageNumber is the absolute page number of the page.
PairBookName is the book name of the page.
PairBookPageNumber is the page number of the page in the book.
If the current page does not have a pairing page, PairBookName is empty,
and PairPageNumber and PairBookPageNumber are both 0.
The variables do not indicate whether ClassPag is printing the current
page as a tab spread. They only tell what the paired page would be
if the page were printed as a tab spread. The SpreadType variable
determines whether ClassPag is printing tab spreads.
* More cleanup and reformatting to the color separation dictionary.
NOTE: This version has 558 lines of changes from the previous version.
9/16/03
Version 3.53
* The folio command to copy the folios from another product now prompts
before each folio so that you can copy only the ones that you want.
* The separation dictionary no longer lets cyan graphics appear on
spot color pages.
* The separation dictionary no longer lets the black component of
custom spot colors appear on the black separation.
* The separation dictionary no longer treats the dictionary version of the
imagemask operator specially. The special treatment was not necessary
and could sometimes cause the error "/rangecheck in --.imagemask1--".
* ClassPag now reads and writes spot color names in %%DocumentCustomColors
comments.
* ClassPag now writes %%CMYKCustomColor comments. This retains spot
color information for ClassPag EPS files that contain spot color ads.
* ClassPag now handles %%CMYKCustomColor comments with a continuation
line for each color.
NOTE: This version has over 800 lines of changes from the previous version.
9/23/03
Version 3.54
* The Page Name database field "Hdr"/"Cab" has new values of "TSUB" and "TKIL".
The values work like the previous "SUB" and "KIL", except that they remove the
header of only the top level class. If the top level class has no headers,
they do not remove the header of the first subclass.
* When ClassPag draws templates and folios on spot color plates, it now draws
them under a cyan separation instead of the current spot separation.
* Fixed a problem with missing super headers at the tops of columns in
front-to-back pagination when the super headers were created with banners using
Position "E", Overflow "S", Split Overflow "P", and Overflow Position "L".
* Fixed a problem with missing super headers at the tops of columns in
back-to-front pagination when the super headers were created with banners using
Position "E", Overflow "F", Split Overflow "P", and Overflow Position "L".
ClassPag reserved space for the headers but never placed them, so the
affected columns would be loose or have extra fillers at the bottom.
NOTE: This version has 374 lines of changes from the previous version.
10/2/03
Version 3.55
* You can now customize square-offs for each import area without
making a separate product or edition.
Square-offs have a new "Style" field that is now part of the key.
The edition parameters in the control record allow you to select a style.
When ClassPag looks at square-off records, it takes the best match
for each square-off request name, checking first for a matching
Style, then for a matching Edition.
* The "Active" flag in square-offs now overrides the active flag in banners.
When you toggle square-offs on and off, ClassPag no longer changes the
run count field in the corresponding banner.
If you have square-offs on some days but not on others, you can have
a square-off records for each day (as separate Styles or Editions)
and a single banner that is always enabled. This makes it possible
to turn off the square-off for some days without turning off the banner.
Since the banner is shared, turning it off would break the square-off
on pagination sessions that need it.
In the square-off windows, the active flag shows as " ", "-", "+", and "*".
" " means an inactive square-off in the current session.
"*" means a active square-off in the current session.
"-" means an inactive square-off in another session.
"+" means an active square-off in another session.
If you have square-off entries for specific styles or editions, and other
generic copies of the square-off with empty (i.e. wildcard) styles or editions,
you will see all of them in the square-off window, and the unselected generic
will have a "-" or a "+" in the "Active" column.
If a square-off has both specific and generic versions, ClassPag used to enable
the square-off if it was enabled in either the specific or the generic copy.
ClassPag now checks only the most specific copy.
The order of precedence is:
matching style and matching edition
matching style and empty edition
empty style and matching edition
empty style and empty edition
* You can now change square-offs in a work area without affecting other
work areas without making separate products or editions.
ClassPag now keeps a copy of the square-off database in each work area.
When you open a work area, if its copy of the square-off database does
not have any entries for the current product, ClassPag copies the entries
for that product from the common configuration area.
The Setup window option "Set Page Names" opens the common configuration version,
while the preview window option "Cmd -> Edit square-off ranges" opens
the copy in the current work area.
* The windows to modify the square-offs in the common area and in the
current work area have new options to switch to each other.
* The window to modify the square-offs in the current work area has
a new option to copy entries from the common area.
"Copy New" copies only the new square-off entries.
"Copy All" restores the square-offs entries in the work area to the
values in the common area.
* The product configuration screen "Ad Importing"/"Importacion de Avisos" has a
new field "Clear on Import: Square-Offs"/"Borrar antes importacion: nombres de
paginas" to control whether ClassPag resets the square-off entries in the
current work area when importing ads. The default of "N" is to preserve the
square-off entries so that you can load updated interface files on top of early
runs without losing the square-offs. If you set the field to "Y", ClassPag will
reset the square-offs if you say to remove old files before copying new files.
If you say to keep the old files and you are copying from an import area,
ClassPag will ask if you want to clear the square-off entries. This field is
similar to the "Clear Book Sizes on Import" field.
If you did not reset the square-off entries and later realize that you should
have, you can reset them at any time inside a pagination session through the
"Copy All" option in the square-off window.
* In back to front pagination, when ClassPag starts a new column, it looks
to place display ads of classes that will be contained within the column.
This helps to keep display ads closer to their line ads in classes that
do not have a full column of line ads.
The product configuration screen "Display Ad Specifications (Continued)"/
"Especificaciones de Avisos Destacados (continuado)" has a new field
"Check for display ads in new columns"/"Buscar avisos destacados en nuevas
columnas" with the values "ALL", "CLASS" and "NO".
These values control whether ClassPag looks ahead for display ads when it
starts a new column in back-to-front pagination.
"NO" does not look ahead for display ads. This is what ClassPag used to do.
"CLASS" and "ALL" look ahead for display ads in classes that will fit
entirely within the current column. "ALL" scans every class, while "CLASS"
stops at a class that requires a different class header than the starting
class for line ads at the bottom of the column. The default is "CLASS".
* The field "Place over display ads"/"Colocar encima de avisos destacados" on
the product configuration screen "Classified Heading Placement"/"Ubicacion de
Encabezados de Clasificaciones" has a new value "1" to place headers only over
single column display ads. As before, "T" places headers over all display ads,
and "F" does not place headers over display ads.
* In front-to-back pagination in classes without single column line ads and
without pair classes enabled, ClassPag is more careful about moving the
pagination column to the left. Before this change, in editions with all
two-column ads, ClassPag would sometimes place an ad on an odd column.
If an edition has all two-column ads, or if all of the two-column ads should
line up, the better solution is to open the product configuration screen "Agate
Ad Specifications (Continued)" and set the field "Wide Ads on Divisible Col"
to "Y".
* The product configuration screen "Folios and Banners"/"Folios y Carteles"
has a new field "Folios can cover: Templates"/"Folios pueden cubrir: Plantillas"
to control whether ClassPag can place folios over template banners.
If the field is empty, it defaults to the value for covering banners
in order to preserve the previous behavior.
If you use template banners to reserve space at the tops of pages for folios,
you should set the field for covering banners to "N" and the new field for
covering templates to "Y". This will prevent ClassPag from writing folios
over normal banners (for example, for an index or a square-off) when they
happen to fall at the top of a page.
* ClassPag should no longer place class headers over fillers on banners.
ClassPag tries to assign fillers to the nearest class in order to count them
correctly in lineage reports. When a filler is over a square-off banner,
ClassPag no longer sets the class of the filler to the class of the banner.
Since the filler remains in the generic filler class, ClassPag does not
try to place class headers on it.
* Fixed image rotation for images with a non-zero lower left y bounding box.
* The import commands to read and copy work areas should open faster.
I moved some of the 4GL code into C code.
NOTE: This version has over 7000 lines of changes from the previous version.
NOTE2: The square-off changes need testing.
10/7/03
Version 3.56
* ClassPag can now generate special templates for composite color pages that
are targeted for on-rip spot separation. The "Create Separations" field in
the paper definition has a new value "CSPOT" that works like "NO" to produce
a single composite page except that it uses spot templates designated by
the new value "S" in the second "All Plates" field in the folio entry.
* When "Smart Rules" is enabled, ClassPag draws a larger protection area
around rules next to SII boxed ads.
* Increased the number of folios that can use column ranges from 5 per side
to 10 per side.
* Increased the number of templates from 5 per side to 10 per side.
NOTE: This version has over 650 lines of changes from the previous version.
10/8/03
Version 3.57
* Improved the way that ClassPag tracks boxed ad to work better with
multi-column ads.
* Improved the vertical justification so headers under a square-off
at the bottom of a squeezed page have the same space above them.
Sometimes the header in the rightmost column could have had less space
above it than the other headers.
This change should improve the vertical justification on pages with multi-column
ads at or near the top of the stack of ads at the bottom of the page.
NOTE: This version has 282 lines of changes from the previous version.
10/11/03
Version 3.58
* The scan under Cmd -> Ads ... -> Check for conflicts -> Internal
now shows an INT_END_ERROR conflict if the end offset of an internal ad
exceeds the size of the ceps.out file. The comment shows the end offset.
In addition, the comments for INT_SEEK_ERROR, INT_READ_ERROR and
INT_BAD_EPS now show the offset of the start of the ad.
The report also now shows a CEPS SIZE conflict if the end of any ad exceeds the
size of the ceps.out file. The comment shows the amount that the ceps.out file
is missing and the size of the largest end offset of any ad.
Either of these conflicts indicate that the ceps.out file is either truncated
or does not match the classsrt.out file. The best solution is to generate new
interface files on the front-end.
* The vertical justification from the previous version is now a little more
efficient.
* Fixed a problem where the various level pages options could create
squeezed pages. On locked pages with square-offs, this could have
broken the alignment of the class headers under the banner.
* Fixed a problem where Cmd -> Ads ... -> Check for conflicts -> MissingEPS
could abort.
NOTE: This version has 62 lines of changes from the previous version.
10/25/03
Version 3.59
* The product configuration screen "Request Checking"/"Comprobar Solicitudes"
has a new field "Show Display Ads in Class Color"/"Mostrar avisos destacados
en color de su clase" to control the color of display ads.
The default value of "Y" shows display ads in the same color as line in their
classification (when the classification has a color specified by Setup ->
SetClassColors). This is what ClassPag usually does to help identify which
ads are in classification.
The value of "N" shows all display ads in the standard color for display ads
(specified by Setup -> SetAdColors). Use this value if you are more worried
about tracking the locations of display ads than about keeping display ads
in classification.
* The product configuration screen "Agate Ad Specifications"/"Especificaciones
de Avisos Agate" has a new field "Warn if over"/"Advertir si más que" with a
value in KB. ClassPag sets the new conflict "LARGE_INT_AD"/"INT_AV_GRANDE"
for internal ads larger than that many bytes. The default is 5000 to mark ads
larger than 5 MB. The conflict scan under Cmd -> Ads ... -> Check for conflicts
for internal ads includes the size of the ad in the conflict message.
* The Box Information window for internal ads now shows the size of the
EPS for the ad in the ceps.out file.
* Improved the vertical justification for a column with two multi-column
ads with line ads below them, for example, on a page with a square-off
with a display ad above the square-off banner. If ClassPag would adjust
the display ad after the banner, it would re-adjust the banner but then
only the rightmost column of display ads below the banner.
ClassPag now adjusts ads in all columns below the banner.
* The maketext.sh interface script is smarter about setting CPAG_INT.
* The field "Fill Front Page"/"Llenar Pra.Pag" of the classification database
has a new value "D" to specify classifications that do not require headers
over display ads even when the display ads are out of classification.
This option applies to headers over display ads when an ad of another
classification is above the display ad.
The existing value "B" applies to headers over display ads when the display
ads are at the top of a column with nothing above them.
* The purgeopi.sh interface script has a new -rz option to strip leading
zeros in the names listed in the opicmd.txt file before trying to remove
the files. Sites with SCS/AdMAX but without SCS/Track should use this
option if they enter ads zero-filled to 10 digits in AdMAX but create
EPS files without leading zeros.
* ClassPag now asks to rebuild the folios if the product configuration
parameter "Warn if folios not made for book" is set to "Y" and you change
the section field on the edition parameters screen.
* The product configuration screen "Folios and Banners"/"Folios y Carteles"
has a new field "Warn if not made for book"/"Avisar si no se hace por sc"
to control whether ClassPag should ask to rebuild the banners if the section
name was changed. The default is "N" to ignore changes to the section name
or book names. If you embed section names or page numbers into banners,
you should set this field to "Y".
Note that most of the "warn if not made for ..." fields default to "Y", but the
new field for section names defaults to "N" to preserve the current behavior
of not show a warning, since only a few people embed section names in banners.
* Fixed a problem introduced in 3.08 where the classes highlighted by the
"Find Class" button would not clear. The highlight now clears if you
click on any highlighted ad and then click on the "Find Class" button.
* The wtxcpag.bat script now works with wtx.exe in addition to wtxv2.exe.
* NOTE: If you are doing a nightly mirror from a primary server to a backup
server, it is important to stop the scs processes on the backup server
during the copy. The script should run at a different time than the
usual scs cleanup to avoid shutting down scs while the cleanup is running.
It is also important to stop the scs processes on the primary server
in order to flush to disk the memory sections held by the composition engine
and the environment manager and to stop the replication manager
(if you have other scs applications that use it).
umask 0
/u/scs/maint/bin/scsmaint shutdown cron
rsh -l root backupserver /u/scs/maint/bin/scsmaint shutdown cron
rsync -avRW --delete /u backupserver:/
rsh -l root backupserver /u/scs/maint/bin/scsmaint startup cron
/u/scs/maint/bin/scsmaint startup cron
Track sometimes uses the command line
/usr/local/bin/rsync -avRW -L --exclude-from=/etc/mirror/mirror.exclude
--rsync-path=/usr/local/bin/rsync "/u" "backupserver:/"
If rsync is built and installed correctly, you should not need to specify the
path to the local executable or the --rsync-path to find the remote executable.
The -L option copies the contents of symbolic links instead of copying just the
link pointer itself. Do not use this option with ClassPag. It will break links
to import areas in /u/cpag/root/scratch, and it could copy directories of EPS
files linked to NFS mounts on other servers.
The standard Track /etc/mirror/mirror.exclude does not copy environment data,
so it will not copy fonts that have been added to composition.
NOTE: This version has 4159 lines of changes from the previous version.
11/19/03
Version 3.60
* Square-offs requests have a new field "DHdr"/"DCab" to control the
placement of class headers between display ads of different classes.
The default is "DEF" to use the setting for normal display ads in the
product configuration.
"NO" does not place class headers.
"YES" places class headers.
"RES" places class headers and builds the square-off to reserve space
for the headers.
The routines to calculate the display ad positions uses only the sizes
of the ads. The calculations do not include class headers.
If display ads require class headers, the square-off can end up too
large to fit in its pre-calculated space.
If you usually place headers over display ads, but do not require them
inside square-offs, you should set the new field to "NO".
If you place headers over display ads in square-offs and have problems
with ads not fitting inside the square-off, set the new field to "RES".
* When ClassPag places headers over display ads in square-offs, it now places
headers over the top display ad and not just between display ads.
* ClassPag now shows more ad previews. To avoid expensive painting of small
previews, ClassPag used to show previews of ads only if they were are least
three cells wide and two cells deep. ClassPag now tests if they have an area
of at least six cells. This works better for thin ads, like banners.
* Added a rsyncex.sh example interface script for mirroring a primary
server to a backup server using the rsync command.
If you have the file /u/scs/maint/startup/U91fs, it must be from Nov 3, 2003,
or later to start the X font server in a way that works over an rsh connection.
* pstoepsf.sh now handles files in Mac format better by using "addcr -s" before
grepping for the bounding box.
* pstoepsf.sh used to give the warning "gs did not make a preview bitmap,
retrying with showpage" even when gs made a preview.
* Fixed a problem where Cmd -> Ads ... -> Check for conflicts -> MissingEPS
did not look for OPI calls inside internal ads.
* ClassPag now builds square-offs with leading if they have a mix of display ads
and line ads. It used to build mixed square-offs without leading, the same as
square-offs with only display ads, and would not always end up with enough space
to vertically justify the class headers.
* ClassPag now maintains a filler statistics database with fillers and
house ads than ran in each product.
The product configuration screen "Outext Export (Continued)"/"Exportar de outext
(continuado)" has a new field "Save Filler Stats on Exit"/"Guardar estad. de
rellenos" to specify products that maintain filler statistics. The default is
"N" to not save the statistics. Set the field to "Y" to save filler statistics.
In addition, the editions screen has a new field "Fillers"/"Rellenos" to mark
editions that maintain filler statistics. The default is "Y" to save the filler
statistics (provided that the product configuration is also set to save filler
statistics).
The command entry under Cmd -> Ads -> View Filler Stats
optionally saves the filler statistics for the current session and then opens
a window with all of the saved statistics. The window has command keys to
insert, delete, edit and copy individual entries. It also has command keys
to show the report of ordered fillers, to show the report of unordered fillers,
to post a filler report for the current date, and to delete filler statistics
by date.
The filler statistics reports are comma delimited with the fields below:
PubDate: 10 character date in MM/DD/YYYY format, ex "07/27/2003"
Zone: 30 character string with the zone name from the ClassPag setup, ex. "Full"
Page Name: 3 digit page number, ex. "1"
Edition: 30 character string with the edition name from the ClassPag setup, ex. "Tue. Class"
Ad: 10 character ad number, ex. "5737A"
Description: 45 character string with the ad width in columns x the ad height
in inches followed by the ad description, ex. "1 x 2.9 small filler"
Column Inches: 8 character real number, ex. "2.9"
Raw Ad Width (inches): 6 character real number, ex. "1.1".
Raw Ad Height (inches): 6 character real number, ex. "2.9"
Reason Code: 30 character string, ex. "agate stacking", computed as below:
ad number starts "F-" -> "display stacking"
ad number starts "NS-" -> "no show"
ad number starts "K-" -> "kill"
line ad
ad number starts "-Z-" -> "index"
other line ads -> "agate stacking"
agate filler -> "agate stacking"
ad, filler or banner with no external EPS image -> [these ads are ignored in the report]
display ad -> "display stacking"
banner for square-off -> "class banners"
other banners -> "index"
display fillers -> "display stacking"
reservation -> [these ads are ignored in the report]
Message Code: 30 character string, ex. "park millenium"
in the unordered filler report ->
the message code from the filler database for fillers with descriptions
in the format: description "/" message
in the ordered filler report ->
the EPS file name (without a directory or extension)
The report contains all banners, agate fillers and display fillers with external
EPS images plus any other ad that match the "F-", "NS-", "K-" or "-Z-" naming
conventions plus any ads marked as a house ad ("HA" in the Position Request
field at col. 102 of the sort file). Ads marked as house ads show as ordered
fillers. All other ads show as unordered fillers.
Here is a sample ordered fillers report:
Daily Classified Filler Ad Report for PubDate 07/27/03,,,,,,,,,,
,,,,,,,,,,
ORDERED PROMO ADS,,,,,,,,,,
,,,,,,,,,,
PubDate,Zone,Page Name,Edition,Ad,Description,Column Inches,Raw Ad Width (inches),Raw Ad Height (inches),Message Code,
,,,,,,,,,,
07/27/03,West Cook,3,Tue. Class,6578764,2 x 2.8 carriers needed,5.5,2.2,2.8,A644232,
Here is a sample unordered fillers report:
Daily Classified Filler Ad Report for PubDate 07/27/03,,,,,,,,,,
,,,,,,,,,,
UNORDERED PROMO ADS,,,,,,,,,,
,,,,,,,,,,
PubDate,Zone,Page Name,Edition,Ad,Description,Column Inches,Raw Ad Width (inches),Raw Ad Height (inches),Reason Code,Message Code
,,,,,,,,,,
07/27/03,Full,1,Tue. Class,2top2-tomb,10 x 5 ,50,11.5,5,index,tomb stone
07/27/03,Full,1,Tue. Class,2top3-midd,4 x 7.9 ,31.7,4.6,7.9,index,How 2 Place
07/27/03,Full,1,Tue. Class,5737A,1 x 2.9 buy today,2.9,1.1,2.9,agate stacking,message
The "fillstats.sh" script creates a filler report from the command line
for use in cron jobs. It takes the parameters
-d YYYYMMDD (to set the date in YYYYMMDD format, the default is the current date)
-o # (to offset the date, for example, "-o -1" selects the previous day)
-p # (to set the offset for the purge date, for example, "-p -90" to purge 90 days before the date)
For example, running "/u/cpag/fillstats.sh -p -90" on Nov 18, 2003, produces
an ordered filler report in
/u/reports/SCSClassifiedOrderedFillerReport_20031118.txt
an unordered filler report in
/u/reports/SCSClassifiedUnorderedFillerReport_20031118.txt
and purges all filler entries older than 90 days.
The database (/u/cpag/fillstats.*) grows by about 150 bytes for each filler,
With 100 fillers per day, it grows 15 KB per day or .5 MB per month.
* When you write the outext file, if the current session needs to save
the run statistics or filler statistics, ClassPag will automatically
save them and include the results in the outext dialog.
If you are saving both the run statistics and the filler statistics,
this eliminates two pairs of prompts and dialogs.
NOTE: This version has 3476 lines of changes from the previous version.
11/23/03
Version 3.61
* Banner images for square-offs have a new "BACK" value for the Side/Lado field
to set the background image. For every page with an ad from the square-off,
ClassPag calculates the smallest rectangle that contains all of the ads in
the square-off and expands the background image to fill that rectangle.
If the banner contains background images of several widths, ClassPag looks
for an image of the width of the square-off or smaller.
If all of the images are wider than the width of the square-off,
ClassPag will not place a background.
The "Smart Rules" option does not apply to ads over the background because
the protection band would create white bands in the background image.
* The product configuration screen "User Preferences"/"Preferencias de Usuarios"
has a new field "Warn when printing with overflow pages"/"Preguntar antes de
imprimir con excesso" to show a warning when you view or print a page and the
current session has overflow pages. The default is "Y" to show the warning,
even if you are only viewing pages, because eliminating the overflow could
affect all of the pages. If you use the overflow page as a paste box,
you can set the field to "N" to suppress the warning.
* The product configuration screen "User Preferences"/"Preferencias de Usuarios"
has a new field "Ask before dragging templates"/"Preguntar antes de traer
templatos". If you use template banners to reserve space for folios,
you can set this field to "Y" to show a warning if you attempt to drag a
template banner. The default is "N" to allow you to move template banners
without warnings.
* bbcheck.sh now uses the gs bbox device instead of the gs ps2epsi.ps script.
This is faster and works better with newer versions of ghostscript.
Use the new -nobboxdev option to force using ps2epsi.ps.
* The checkbb program now understands files with a single %%BoundingBox line
as created by the gs bbox device.
NOTE: This version has 1374 lines of changes from the previous version.
12/5/03
Version 3.62
* Added a mailrpt.sh that takes a list of user names (comma separated email
addresses with no spaces) and a file name and then mails the file to the users.
You can use this in printer entries to deliver reports by email.
* When you view an ad, ClassPag now generates postscript that cleans
up anything extra that the ad leaves on the postscript stack.
This is similar to the cleanup when ClassPag places ads on pages.
Before this problem, ads that left extra entries on the stack would
print correctly on pages but would get postscript errors if you tried
to view them with the "View Box" button.
* When ClassPag creates color separations for pages with square-off that
contains a background, ClassPag writes color ads in the square-off into all
of the separations, even if the ads do not use all colors, so that the ad can
knock-out areas in the background. This fixes a problem where, for example,
a blue banner would not create a knock-out in a yellow background, with
the result that the banner would print green.
ClassPag writes black-and-white ads only to the black plate.
This avoid "trapping" problems that could happen if the black text
of line ads created knock-outs in the background.
* When a template banner (banners with positions "T" or "N") has a column
position that places it on the right or left of a page, ClassPag adds a left or
right edge request (if the banner is for both sides) or an inner or outer edge
request (if the banner is for only left or right hand pages).
This allows ClassPag to show conflicts if you place a template on the wrong
side of a page.
* When you exchange pages with template banners, ClassPag attempts to position
the templates according to their requests. For example, if you have template
banners positioned at the left side of left hand pages and the right side of
right hand pages, if you exchange an even and odd page, ClassPag will adjust the
column positions of the banners. ClassPag will also replace even and odd page
templates if it can find ones that match in size.
* When ClassPag places template banners, it is smarter about not placing a
template for even pages when the page already has a template for odd pages,
and the other way around. This prevents problems with double templates if
you exchange pages.
* Fixed a problem where ClassPag would not automatically place template banners
if you dragged a template banner to a column other than the column that it
requested in the banner setup.
* Fixed a problem where the command to print all pages, when creating
separations, would print only the last separation.
NOTE: This version has 1431 lines of changes from the previous version.
12/29/03
Version 3.63
* The ClassPag screen changed from a 24x80 grid to 36x127 grid.
ClassPag now requires displays with a resolution of at least 1024x768,
although higher resolutions like 1280x1024 or 1600x1200 are better.
Workstations dedicated to ClassPag should be set to the highest
resolution that supports 16-bit color (64K colors).
In the connection script for your X display, you will probably need
to modify the XFontSize value. Start with
/u/cpag/menprof.sh XFontSize 12
and then increase by 2's to find the largest size.
You will probably need to reduce the original XFontSize by about 1/3.
For example, if you used XFontSize 18, you should try 12.
If you had an XFontSize command with a range of fonts, like
18:18-18 or 34:34-34,10:10-10, reduce the first number, and delete
all of the other numbers and punctuation (colons, dashes and commas).
For example, if you had "XFontSize 34:34-34,10:10-10", try "XFontSize 22".
ClassPag still runs with version 4.151 of the SCS 4GL (from Jan 30, 2003),
so most installations already running ClassPag version 3 will not require
a 4GL update.
* The status information at the upper right of the page display screen
now shows both the page and ad information. It used to show only three
lines of either page or ad information. It now shows three lines of
page information and up to 13 lines of ad information.
The ad information now shows field names similar to the box information window,
so it is easier to figure out what the values mean.
The parent classification is now on its own line instead of combined with the
current classification. This allows more room for classification titles.
The field titles show in black. Normal field values show in blue.
Field values values with warnings show in yellow or red, depending
on the severity of the warning.
The changes apply to both the status area on the page display screen
and to the box information window.
* ClassPag can now copy field values from the import class nesting as it imports
interface files. The "Ad Loading"/"Cargar de Avisos" product configuration
screen field "Use Import Nesting Sequence Numbers"/"Usar secuencias del nido
para importacion" is now renamed to "Load Import Nesting"/"Cargar nido para
importacion". It has the new values "NO" to use only the parent class
from the nesting table, "SEQ" to load all information from the nesting table,
and "LOAD" to load everything but the sequence number from the nesting table.
For backward compatibility, "F" works like "NO", and "T" works like "SEQ".
Note that if you load another nesting when you enter a pagination session,
that nesting will modify the fields set by the import nesting.
* When ClassPag writes EPS pages, it can now also create a supplemental
text file with the list of display ads and agate ads on the page.
The file has one ad number per line, and each line may be padded to 80
characters. Electronic tearsheet programs can import this list to decompose
ads within EPS classified EPS blocks.
Printer entries have a new field "Write ad list"/"Escribir listo" to request
ClassPag to write an ad list file whenever it creates a file to that printer.
ClassPag names the file "report.txt". The printer command should copy and
rename this file as needed.
Here is a sample printer command that builds an EPS file name in a variable,
adds a preview to the EPS file, copies it to /u/eps/ with the new name,
creates a text file in /u/eps/ with a ".txt" extension with a first line
of the name of the EPS files and then appends the ad list file.
string name := f$edit(f$extract(0,1,EditionName) // BookPageNumber // "-" //
f$format(RunDate,"dd"), "COLLAPSE");
"pstoepsf.sh -pnmraw -rev -keep /u/eps/" // name // ".eps cpag.ps; " //
"echo '" // f$pad(name // ".eps","RIGHT",80) // "' > /u/eps/" // name // ".txt; " //
"cat report.txt >> /u/eps/" // name // ".txt; echo "
* In the filler statistics report entries for line ad and display ads, ClassPag
now checks for a slash in the description field passed in the sort file.
If the description has a slash, ClassPag takes the text to the left of the slash
(until the first space or the start of the description if there are no spaces)
as the "message code" in the filler report and the text after the slash as the
"description" in the filler report.
If there is no slash, ClassPag takes the base part of the EPS file name
as the "message code" and the sort file description as the "description"
as before.
For example, a display ad with the sort file line
DYtest154510 2 110 25714 13240 14195 YN#154510 Z 045130013/GARAGE SHA
Used to generate an ordered filler detail line of
10/23/2003,Full,1, ,test154510,2 x 3.6 Z 045130013/GARAGE 003701#1545,7.1,2.2,3.6,154510,
but now generates
10/23/2003,Full,1, ,test154510,2 x 3.6 GARAGE S,7.1,2.2,3.6,045130013,
The description changed from "2 x 3.6 Z 045130013/GARAGE 003701#1545" to
"2 x 3.6 GARAGE S" (the size plus the text after the slash).
The message code changed from "154510" to "045130013" (the number before
the slash with the "154510" and "Z" removed).
Note that ClassPag still parses the description field in fillers in the
setup database as "description/message code" while the syntax for ad
in the sort file is "message code/description".
NOTE: This version has 7032 lines of changes from the previous version.
NOTE2: Do not use this version. The banner setup screen is bad.
1/6/04
Version 3.64
* Updated the window sizes in the mapclass interface formula
and some window sizes in the loadgx interface formula.
* The product configuration screen "Classified Heading Placement"/"Ubicacion
de Encabezados de Clasificaciones" has a new field "Copy from sibling"/"Copiar
desde hermano" to copy class headers from earlier classes if the current
class does not have a header. If ClassPag sees a sequence of classes
where the first class has only a header, the next class has only display ads,
and the next class after that has line ads but no class header,
and then if the classifications names all start with the same first five
letters, ClassPag uses the class header in the first class with the next two
classes. This situation can happen in interface files from SII systems that
increment the classification name for each subsort when the first subsort
starts with a display ad. For example, a sort file might have
class 8600 with a top level real estate header,
class 8600CA1 with just a header for the CARLSBAD subsort,
class 8600CAR with just display ads for the CARLSBAD subsort, and
class 8600CA2 with line ads for the CARLSBAD subsort.
When the new field is set, the 8600CA2 line ads will have a copy
of the CARLSBAD subheader from the 8600CA1 class.
If the field is not set, the 8600CA2 will not have any class header.
The default value is 'N' to not set the field because the most
interfaces pass headers only when they are needed, so any
additional headers that ClassPag might create would be unneeded.
* setup.sh now picks better font sizes for WebTermX.
* The Cmd->"Add main headers"/"Anadir prim cabezales" command no longer
places a header from a later class if the current class does not have
a header. Also, if the current class has a main header and no copy header,
the command places the main header on all columns of the selected ad
instead of just on the first column.
* Added a new privilege "Admin Scripts"/"Scriptos de Adm." that defaults to the
"Shell" privilege. This privilege currently controls whether users can see
and run the Import commands "Copy configuration files" and "Link /u1 to /u".
The "Copy configuration files" command is for sites with very limited disk space
that have a second ClassPag setup in $CPAG_ALT_DIR that shares the same work
areas as the main area. The command copies all of the files in the current area
to the alternate area. Some early ClassPag sites used this command.
The "Link /u1 to /u" command makes symbolic links on /u to some common
directories on /u1 like "displayads" if the directories exists on /u1 but are
missing on /u. Some ClassPag sites with limited disk space used this command
to restore the links if someone would accidentally delete them.
* Combined some of the small dialogs at the start of pagination sessions.
This reduces the number of windows that you must click through.
* Reformatted the detail windows on the setup screens for banners and fillers.
NOTE: This version has 3722 lines of changes from the previous version.
1/7/04
Version 3.65
* The control database now has a second screen with information about the
last accesses of the work area. Each access type shows the login name,
date, and time (in HHMMSS format). The currently tracked access types
are "Open"/"Abrir" (the last time the work area was opened),
"Store"/"Archivar" (the last time that the ad positions were saved),
"Save"/"Guardar" (the last time that the work area was saved),
"Move"/"Mover" (the last time that an ad was moved), and
"Print"/"Imprimir" (the last time that a page was printed to a final
output device).
* Fixed some of the window text centering problems in 3.64.
The 4GL fix for the setup window problem in 3.63 broke centered text in 3.64.
* Fixed a problem where ClassPag would not place backgrounds for square-offs
if the rightmost column of the square-off was on the last page of the session.
* wtxcpag.bat (the Windows start script when using WebTermX) now has an "admin"
parameter to match tntcpag.bat.
NOTE: This version has 533 lines of changes from the previous version.
1/9/04
Version 3.66
* In back-to-front pagination, ClassPag does a better job of placing
headers over display ads in classes with no line ads.
In back-to-front pagination, when a display ad uses the class header of
its parent class, ClassPag is cautious about placing class headers because
it might end up flowing line ads of a compatible class over the display
ad, and then the header would not be required.
With this change, if the parent class has only a class header, ClassPag
will place the header over display ads of the first class (smallest
in sort order) under the parent class.
* The control record now saves the additional last access times:
"Import"/"Importar" (the last time that the work area was imported; the work
area with the original files is in "Import Terminal"/"Importado en" on the
first screen),
"Copy"/"Copiar" (the last time that another area was copied into this work area;
the source area is in "Source Terminal"/"Copiado de" on the first screen), and
"Close"/"Cerrar" (the last time that a session in this work area was closed).
* The control record has a new "Terminal" field below the last access "Save"/
"Archivar" field to show the save area to which this work area was copied.
* The page information record has new fields "User"/"Usuario" and "Date"/"Fecha"
with the user who last printed the page to a final output device and the time
that the page was sent.
* gslp.sh has a new -q option with a queue name parameter to set a -d option
on the generated lp command line. If you only need to set the print queue,
this option lets you replace
gslp.sh -lp "lp -dhp4v
with
gslp.sh -q hp4v
* Changed the wrap width for editor windows from two less than the window
width to three less to prevent the new version of the editor from creating
a horizontal scroll bar.
* Steve fixed a test in purgeopi.sh. It had a == instead of an =,
which worked on Linux but gets errors on SCO.
NOTE: This version has 563 lines of changes from the previous version.
2/25/04
Version 3.67
* The "Set Class Colors" and "Set Ad Colors" setup screen to set the colors
for displaying ads now allow you to specify colors as red-green-blue triplets.
ClassPag can now show ads in any color instead of only the sixteen built-in
colors. If you want, you can now have each classification show its own color.
In the forms, you must enter a built-in color or ClassPag will ignore the RGB
color. ClassPag requires the built-in color as a fall-back on displays that
do not support a full palette of RGB colors.
While you are in the form to enter a color, ClassPag shows boxes at the right
side of the screen with a preview of the colors that you have selected.
Also, from any of the RGB color fields, you can press the help key (F1)
to open a list of sample colors.
* ClassPag can now build using 80x24 and 112x32 screens for testing.
Use rebuild.sh -80 to compile 80x24 versions of the formulas
and rebuild.sh -112 to compile 112x32 versions of the formulas.
They are saved in the new 80, es80, 112, and es112 directories.
runcpag.sh has a new "80" option to prepend 80 (or es80) to CPAG_SPICE
and a new "112" option to prepend 112 (or es112) to CPAG_SPICE.
menprof.sh now accepts "80" and "112" options and passes them to setup.sh.
* The page parameters screen is now a dialog form instead of a data entry
screen. You can now open other windows, like the square-off window, by
clicking on a button instead of entering "Y" in a field and pressing <enter>.
* When ClassPag would have placed a message with statistics over the pagination
statistics window, it now shows the pagination statistics window in a
three-column format with the message as the third column.
* Pop-up messages about old interface files now show in red instead
of the usual gray to make them stand out more.
* In the filler report for unordered fillers (agate and display fillers from the
ClassPag filler database), ClassPag now takes the description starting from the
first non-blank character instead the last non-blank characters. For example,
for a filler with the description "Apts.com Mag/045130013", the filler report
now shows "Apts.com Mag" instead of "Mag".
Also, the unordered filler report now appends a copy of the description text
after the message code.
* After loading an outext file, ClassPag now shows a table with the status
of each ad in the outext.
* ClassPag can now handle outext files with Mac-format carriage-return
line endings.
* rcpuniq.sh can now add previews by running pstoepsf.sh.
This should help simplify printer commands.
"-addpreview" asks rcpuniq.sh to add a preview.
rcpuniq.sh uses -pnmraw by default, but you can specify the
color with the options -pbmraw, -pgmraw, -ppmraw, or -pnmraw.
Specify -translate to ask rcpuniq.sh to pass -translate to pstoepsf.sh.
You can now replace the three lines
pstoepsf.sh cpag.ps cpag.eps ;
rcpuniq.sh -ftp -xterm -user cpag -pass cpag localhost:/u/tmp cpag.eps ;
echo
with the single line
rcpuniq.sh -addpreview -ftp -xterm -user cpag -pass cpag localhost:/u/tmp
* The "Sort by Terminal" command in the "Edit the Control Database" window
now shows the terminal field first to make it easier to find the first
terminal that starts with a given letter.
* Added a "statusdebug" option to runcpag.sh to set STATUDEBUG to 9.
* Moved the scrollbar from the right edge to just left of the page previews.
The scrollbar requires two cells plus a cell margin to the right.
In 80 column mode, the three spaces come from the page display ads.
In wider modes, the three spaces come from the description area.
* runcpag.sh has a new ansibw option to run in black-and-white 7-bit ansi mode.
You can use this for testing palettes with class "MONO".
* rebuild.sh has a new -a option to compile for all screen sizes.
-a is currently equivalent to -80 -112.
* rebuild.sh has a new -v option to show verbose messages before
each compilation.
* The product configuration screen "Outext Export"/"Exportar de outext"
has a new field "Section name required"/"Seccion se requierida"
to require a section name in the page parameters before writing an outext.
The default for this field is "N". If you set it to "Y" and try to write
an outext, if the section name field of the page parameters is empty,
ClassPag will show a warning and prompt you to enter a section name.
If you enter a name, ClassPag will write the outext.
If you do not enter a name, ClassPag will show a warning
that it could not write the outext.
NOTE: This version has 15304 lines of changes from the previous version.
2/27/04
Version 3.68
* The product configuration screens in the setup have been redone
in a more graphical layout by Steve. The screens are laid out better,
and you can select screens by clicking on a buttons instead of
page-up and page-down.
The new screens still need testing. It is safe to step through the screens,
but you should be careful not to save changes on a live product,
The old product configuration is still available as "Product Config, Expert".
New fields might take a few releases to appear on the new product configuration
screens, so you might still have to use the old screens for them.
* The Cmd->Lock menu has new options to mark printed pages and
to mark unprinted pages.
* The Cmd->Unlock menu has new options to unmark printed pages and
to unmark unprinted pages.
* rebuild.sh now builds only the english versions of formulas.
rebuild.sh has a new -es option to build spanish versions.
rebuild.sh with no options still builds spanish versions of def screens.
cronbuild.sh now uses rebuild.sh -a to rebuild formulas.
* The "Write ad list" flag in the printer database now defaults to "N".
To write an ad list, you must set it to "Y".
* The "Outext Export (Continued)"/"Exportar de outext (continuado)" product
configuration screen has new fields for specifying where ClassPag writes
ad list files.
The field "Ad List Directory"/"Dir para listo de avisos" specifies the directory
to store ad lists. This directory must be readable and writable by ClassPag.
The default is "/u/etears".
The field "Ad List Name Expr"/"Expr para nombre" is an expression that should
evaluate to the base part of the file name of the output EPS file without a
directory and without an extension. For example, the name could be
f$edit(
"CP_" // f$lower(BookName) // "_" // BookPageNumber // "_" // RunDate,
"COLLAPSE")
When ClassPag writes an ad list file, it will save a copy in the
ad list directory using the ad list name plus the extension ".txt".
The initial header line of the ad list file will contain the ad list name.
If any ads on a page look like blocks (the ad number starts with a letter
or has an underscore or dash in one of the first few characters),
ClassPag will check for an ad list file in the ad list directory with
the base name of the EPS file of the ad plus the extension ".txt".
For example, if an ad called "garage" has the file name
"/u/displayads/CP_serv_1_20040227.eps" and if the file
"/u/etears/CP_serv_1_20040227.txt" exists, when ClassPag writes an
ad list for the page containing the "garage" ad, it will include
the ads embedded in the "garage" ad in the ad list for the page.
Programs that read ad list files of completed pages have access
to all of the ads on the page, even if the ads are embedded inside
blocks made in other pagination sessions.
The field "Ad List Units"/"Unidades para avisos" specifies the unit name
for the values in the ad list file. It defaults to the main product
configuration value.
* The printer database has a new field "Ad list name"/"Nombre" with an
expression for the ad list file name. If this field is not empty, ClassPag
uses it instead of the "Ad List Name Expr" in the product configuration.
If you have many product configurations but only a few printer entries,
you can enter the expressions in the printer entries instead of in each
product configuration.
* Print commands have access to the new variable AdListName which is
the result of evaluating the Ad List Name Expression.
* Ad list files have a new format.
The first line is a header with the value of the AdListName specified
in the product configuration or the printer entry.
It does not have an extension.
The following lines have tab-delimited fields with columns for the
ad number, the ad height in ad list units, the name of the ad list units,
the ad height in ad list units (a second time),
the ad width in columns, the name of the ad list units (a second time),
the ad area in square inches (using an ad width computed as
the ad width in columns X the column width +
(the ad width in columns - 1) X the gutter width,
and a color flag (0 for B&W, 1 for color).
Here is a sample detail line for an ad:
890561 28 LINES 28 2 LINES 4.96 0
* The internal value of centipoints per unit is now a real number instead of
an integer to make output values in reports more accurate for units that do
not contain an integral number of centipoints.
NOTE: This version has 1408 lines of changes from the previous version plus an
additional 17355 lines and 57 bitmap images for the new product configuration.
2/29/04
Version 3.69
* The new product configuration windows position themselves better when
using a 112x32 window size.
* Fixed a warning about an initialized variable "DownloadFont15L"
in the new product configuration.
NOTE: This version has 3327 lines of changes from the previous version,
mostly just formatting changes to source code.
3/2/04
Version 3.70
* The "Test Composition" procedure (available in Setup->Banners and a few
other places), now shows the values that it sends to composition to help
diagnose problems.
* The renamefont.sh interface script now handles dashes differently
to work-around limitations on "tr" under SCO.
* Fixed a problem where the folios would not pick up changes made
to the run date in the edition parameters screen.
* Added the readcsv interface program to convert run files into ClassPag
sort files. It has the parameters -p to read a ppi tab-delimited run files,
nad -7 and -9 to read pcs 7 and 9 column comma-separated-value run files.
* Added the readdn interface program. It converts ATS run files
into ClassPag sort files.
* When ClassPag searches for ad list files, if the ad list directory in
the product configuration is empty, the directory now defaults to /u/etears
instead of the current directory.
* Field in a few list windows show more characters when using a larger
window size.
* Steve updated the new product configuration to open list windows
in better locations and to be more careful with conversions between
strings and numbers.
NOTE: This version has 2534 lines of changes from the previous version,
mostly just formatting changes to source code.
3/15/04
Version 3.71
* Fixed config record initialization problems with the new product
configuration.
* Fixed a problem where ClassPag would think that it needed a section name
before writing an outext file, even if "Section name required" was not set.
* Fixed a problem where the class context window would not update the
preview of the agate border color.
* Linked to a new version of the 4GL that fixes a bad memory reference
when you click in a dialog field that does not have the keyboard focus.
NOTE: This version has 1477 lines of changes from the previous version.
3/16/04
Version 3.72
* Fixed a problem where the end date could show as zeros in the edition
parameters screen after you copied from an import area with empty dates.
* When ClassPag removes old files before reading or copying work areas,
it now clears the databases for square-off ranges, positioned ads,
and book names.
* On 80 column screens, the top level Import list now fits within 24 rows.
* Linked to a new version of the 4GL that fixes a memory leak and
selections from enumerations in dialogs.
NOTE: This version has 206 lines of changes from the previous version.
3/18/04
Version 3.73
* In Setup -> Set Class Colors, after entering the agate border blue level,
the current field now advances correctly.
* Fixed problems where class colors entries with the name "BLACK" would be
ignored or show as gray.
* Restored the code for setting the edition parameter date after an import.
If the date in the sort file header is later than the current date,
ClassPag sets the run date to the sort file header date.
ClassPag sets the end date to the run date plus the configuration ending
date increment parameter.
In addition, if the sort file date is more than a week before the current
date, ClassPag sets the run date to the sort file date. This should work
better when importing old files for testing.
Some interfaces write sort file headers with the date of the extraction instead
of the date that the extraction was for, so the sort file date might be off
by a day or two.
* The display filler and agate filler setup windows should now open faster.
They used to scan the entire filler database in order to draw the scrollbar
correctly. They now stop the scan after 100 records.
NOTE: This version has 338 lines of changes from the previous version.
3/31/04
Version 3.74
* The class colors setup screen now shows the classification name.
This makes it easier to identify the classes.
* The product configuration screen "Ad and Class Conversions"/"Conversion
de avisos y clases" has a new field "Z in description marks house ads"/
"Z en descripcion marca avisos de casa" to tell ClassPag that ads with
a description starting with a capital 'Z' and a space are house ads.
Interfaces that need to mark house ads (for example. to control what
ClassPag writes into filler reports) can use this method if they are
not able to set the "HA" position request.
The field defaults to "N" to allow any text in ad descriptions without
setting the house ad flag. Set the field to "Y" to enable the check for Z's.
* The privilege database now has a separate privilege level for agate ads.
The agate ad privilege corresponds to access on the agate ad database which
contains agate ads with no special requires. Agate ads with special requests
or with external images are in the ads database and access to them is still
controlled by the ads privilege.
If the agate ads privilege field is empty, it defaults to the ads privilege.
If operators need to delete house ads but should never delete agate ads,
you can make it harder to delete agate ads by accident by removing write
access from the agate ads database.
* Fixed problem from 3.73 where "Set the book sizes" would not show update
if you opened a pagination session and then did an import.
* Temporarily removed the save option from the new product configuration.
It is improved but could still truncate some fields when saving changes.
NOTE: This version has 6481 lines of changes from the previous version.
4/22/04
Version 3.75
* ClassPag has a new log database. To view the log, use
Setup -> Log Files -> access logs
The log captures changes to most ClassPag database. Each entry includes the
date and time of the change, the user who made the change, the workstation, the
product, run date, edition and zone of the current session, the action, the
database, and a note.
The action is
INSERT for creating a new record,
COPY for copying a record,
COPYALL for copying a group of records,
EDIT for editing a record using a data entry form,
UPDATE for other modifications of records (for example,
using a hot key to activate a record),
DELETE for deleting records, or
DELALL for deleting a set of records.
The database is a database name similar to the list of privileges
in the privilege database.
The note is a variable length text field that includes information about
the action. In most cases, it starts with the unique key of the record.
For EDIT actions on some database (including the product configuration
database), it also includes a list of all of the modified fields with
the field name, the old value, and the new value.
The log should help resolve questions about deleted ads.
If an operator deletes an ad in a session, the log will record it.
The log should also help with support and help undoing changes.
For example, the log will preserve a history of each field
that you modify in the product configuration.
The log window has hot keys to enable and disable automatic screen refreshes.
When the refresh is enabled, the window will update with the current state of
the log each second. A system administrator can use this to see a real-time
view of changes made by pagination operators.
* The privilege database now has an entry for access to log files.
* The privilege database now has an entry for access to the ad configuration
database. ClassPag used to use the same privilege as the configuration
database. The privileges are now separate, and the privilege to the ad
configuration database defaults to that of the configuration database.
* ClassPag now supports logo requests on ads for front-ends that do not have
an easy way to compose logos into ads. The product configuration screen
"Ad and Class Conversions"/"Conversion de avisos y clases" has a new field
"Sort file logo flag position"/"Posicion en sort de sena para logos"
to specify the column in the sort file that contains the logo request.
The recommended column is 101 (counting from 1).
The logo request is a single character and is case-sensitive.
For a given logo character, ClassPag searches for a file with that character
plus ".eps" in the directories in the COMP_LOGO environment variable.
COMP_LOGO currently includes the /u/comp/data/logo/epslogo directory used by
SCS Composition plus all directories that match the pattern "/u*/*logo*".
For example, you had a logo for new ads, you could save it in "/u/logos/N.eps"
and then pass ads in the sort file with the logo request of "N".
The ad depths in the sort file should not include the size of the logo.
Each time that you open a pagination session (i.e. select "Paginate" from
the top level menu), ClassPag checks for logos as it loads the ads.
If you change logos, you need only to open and close the session;
you do not need to import the ads over again.
Also, from a pagination session, you can add logos with
Cmd->Ads->EditAdData.
* The Cmd->Ads menu has a new option "Convert to expanded format"/"Convertir a
formato grande" to convert an agate ad from the database for agate ads with no
requests to the generic ad database. Use this command if you want to add a
request to an agate ad, for example, to add a logo.
* ClassPag now logs a warning if the "Max Partial Banner Width" is small
and increases it to the maximum number of columns if it is 0 and the
default number of columns is more than 4.
* menprof.sh and runcpag.sh now have "127" options to select windows
on the 127 cell grid, which is currently the default.
* Increased the default ads file directory in the control record from 30 to 50
characters. This should help when setting up test areas. The full EPS path
name in ad records is still 50 characters, so it is still preferable
to keep ads file directory names as short as possible.
* When ClassPag creates separations for pages with square-offs with backgrounds,
it now creates knock-outs in the background for the ads over it. It used to
create knock-outs only for color ads. Creating knock-outs for all ads prevents
the background from showing through ads or class headers that draw white boxes.
Black text in black-and-white ads will now also cause knock-outs.
* When a square-off has "Widen Banners" enabled, ClassPag stretches the
banners as much as necessary to fill the space of the reservation.
ClassPag no longer obeys the product configuration limits on scaling images.
This fixes a problem where EPS files with aspect ratios different than
their reservation could appear to leave gaps in vertical cut rules.
* When ClassPag stretches a square-off banner with "Widen Banners" enabled,
if clipping regions are enabled, ClassPag now increases the clipping region
by the gutter width. This allows you to cut down the BoundingBox of banner
EPS files in order to force cut rules into the gutter.
* You can now write the page parameters dialog with F1 (the hotkey for the
accept button in the old version of the page parameters form) or with F9
(the save keystroke for editor windows). This makes it easier to write
the dialog on terminals where Alt-A does not exist or is hard to type.
* The dialogs about not having privilege to do certain operation
now include the product. This should help track down questions
about privileges at sites with several products.
* SCS applications now support printing reports from most list windows.
The print function is on function key 40, usually bound to Ctrl+F10
(press control, press F10, release F10, release control)
and to Alt+Ctrl+F Shift+0 (press alt, press control, press f, release f,
release control, release alt, press shift,
press 0 (zero at the top of the keyboard), release 0, release shift).
In order to update the 4GL:
1) Install a new "spice" executable in "/u/scs/tools/bin/".
If you have a cpag spice area (check for a /u/scs_cpag directory),
copy the new executable to "/u/scs_cpag/tools/bin/".
You need a version of the spice executable specific for your
operating system (i.e. Linux, Solaris, SCO).
2) Install a new defcall formula. Copy the file defcall.xfm
into "/u/scs/tools/tbin/". If you have a cpag spice area,
also copy it to "/u/scs_cpag/tools/tbin".
The same defcall.xfm will work for all operating systems.
3) Install a new printer kit. The install file works for all operating systems.
Become root, go to an empty directory,
copy the new "printer.tar" to the directory.
run the command
SPICE_APP=all . /u/scs/spicedef
$INSTALL/scsinstall printer
If you have a cpag spice area (check for a /u/scs_cpag directory),
update that area with
SPICE_APP=cpag . /u/scs/spicedef
$INSTALL/scsinstall printer
* The makerun.sh interface script now calls the movefiles.sh
interface script if the directory /u/ppi/adlist is present.
* Fixed the "Level Pages" items on the edition parameters dialog.
The labels on the screen were not in the correct order.
NOTE: This version requires a new version of the SCS spice executable.
"spice" must be version 4.167 or higher, and preferably built after
April 14, 2004.
You need to update the "bspice" executable for the installation to run cleanly.
You must update the defcall formula and printer kit in order
to use the new hot key to print reports from lists.
NOTE: This version has 6163 lines of changes from the previous version.
4/23/04
Version 3.76
* When the "Trailing Segments" field in the "Outext Export" product
configuration screen is set to "N", ClassPag writes a single outext
record for each segmented ad. The record used to have its ad depth
set to the depth of the initial segment. ClassPag now writes the
total ad depth of all of the segments.
5/9/04
Version 3.77
* ClassPag can now create ads from outext records.
You can now build a partial classified page in Layout-8000, send the outext
to ClassPag, and have ClassPag create reservations for retail display ads
that you placed on classified pages.
The dialog to load an outext with the Quit, LoadNew and LoadAll buttons
has a new EnableAdCreation button. When you click on the EnableAdCreation
button, ClassPag opens a new dialog with No (not to create ads),
InThisSession (create ads only if they are assigned to a page in your session),
and All (create all ads in the outext).
For example, to build a movie page with movie listings entered as classified
line ads and retail display ads placed in Layout-8000:
save the outext in Layout
remember the absolute page number (for example 41)
start a ClassPag session
use that page (for example 41) in the edition parameters
use Cmd -> Ads -> Load Outext -> browse and select the outext ->
select EnableAdCreation -> select InThisSession ->
select LoadNew or LoadAll (if any ads are in both the outext and in ClassPag,
LoadNew will keep the ClassPag position,
LoadAll will take the outext position) ->
review the results in the placement list ->
close the placement list and ClassPag will return to the page preview
with the new ads placed
* The outext page placement list now shows a flag for each ad whether
ClassPag created the ad. The list also now shows the type of each ad.
* ClassPag now writes an ad type code into column 9 (1-based) of the second
outext line. The code matches the ad type letter in sort files,
A for agate ads, D for display ads, H for class headers, and F for fillers.
When ClassPag reads outext files, it checks for the codes.
This allows ClassPag to import one of its own outext files without changing
everything into display ads.
* When ClassPag creates ads from outext record, it preserves the class name
on columns 1-8 of the second outext line, except if the class name is empty,
it uses the top level class "******".
* loadtape.sh now processes logmn.xfm LogInstallation with spice, even when
bspice is present. This avoids problems if someone updates spice and forgets
to update bspice.
* Increased the number of unique EPS images from 4000 to 6000.
* ClassPag now writes a warning in its session log when a square-off overflows
because it has display ads and the "DHdr" square-off field is not set to "RES"
to reserve space for class headers between display ads.
* gslp.sh has a new "-P queue-name" that works the same as -q for compatibility
with lpr.
* The renamefont.sh interface script now looks for a /FontName line if
the %!PS-AdobeFont line does not contain a font name.
* Fixed a problem with back-to-front pagination where ClassPag could place
an extra copy of the header of the first class if the first class did not
contain any ads and its first sub-class finished at the top of a column
with just enough room for a column header and if that column header
was a copy of the header for the first class.
* Fixed a problem where square-offs that flow one-column display ads in
classification with line ads might not place a class header of a one-column
display ad if the class of the display ad did not contain any line ads.
ClassPag will now place class headers on in-line one-column display ads the
same as it places over line ads, even if the square-off says not to place
headers over display ads.
* Fixed a problem where ClassPag did not always update the square-off request
field of class headers flowed in square-offs when the headers where entered in
the banner setup instead of in the sort file. If one of the headers fell at the
top of a column, ClassPag might not make the square-off banner wide enough to
cover the header.
* Fixed the window size of the option window under the "Pages" entry in the
statistics window.
NOTE: This version has over 4600 lines of changes from the previous version.
5/11/04
Version 3.78
* ClassPag now checks that the EPS segment of files with TIFF previews has the
correct length. If ClassPag hits the end of the file before reading the entire
EPS segment, it shows a "(TRUNC)" comment in the missing image list and
a "TRUNCATED_EPS" note in the conflict report. This should help identify
postscript errors due to corrupted EPS files.
* When the "Larger Ads in Banners on Bottom" configuration parameter is set
to "N", ClassPag must allocate extra space in square-offs with a mix of
display ads and line ads because flipping the display ads can create holes
in the ad stacks. ClassPag now does not reserve the extra space in some
special cases where the flipping can not create holes.
NOTE: This version has 191 lines of changes from the previous version.
5/17/04
Version 3.79
* At installations that use AdMAX, ClassPag can now call AdMAX to correct ads.
Use Cmd -> Ads -> Edit the ad with AdMAX
ClassPag will use a remote shell to open the ad using
the AdMAX script /u/abs/com/loadad.
The AdMAX paper and edition come from the sort file header.
The AdMAX run date comes from the current run date.
By default, ClassPag will run "rsh admax /u/abs/com/loadad".
In /etc/hosts on the ClassPag server, you should make an "admax" alias
that points to the AdMAX server. You should also check that X Window
programs running on that server can open a session on your display.
On the AdMAX server, you should make sure that ClassPag users can
start remote shells. ClassPag users often log in as user "cpag".
You might also need to make AdMAX accounts for them.
In order to override the default AdMAX server or user,
you can create a printer entry with the name "admaxloadad".
For example, to log in a user "joe" on the server "cobalt24", you could
set the "admaxloadad" command to "rsh -l joe cobalt24 /u/abs/com/loadad".
The command may be an expression that has access to the same variables
as the "Pages Subdir" and "Save Area Name Expr" expression.
* The command "Position -> Paste a banner" no longer lists class headers entered
as banners. This should make it easier to locate banners at installations that
enter class headers into ClassPag.
* The new command "Position -> Paste a header" allows you to position class
headers entered as banners. When you need to place a class header, it is
better to use "Position -> Add headers" or "Position -> Add main headers"
to ensure that you place a header from the correct classification.
* The option to load class headers now tries to match numeric classes where
the class name and the EPS file have different amounts of leading zeros.
This should help in cases where one side is zero filled to a given length
and the other side has leading zeros truncated.
* rebuild.sh has a -n option to avoid including default compform formulas.
* Fix the exchange of green and blue in "Set Class Colors" and "Set Ad Colors".
* Rebuilt reports that read the ad database.
This fixes the reports for missing ads and incorrectly sized ads.
* Fixed an uninitialized variable warning when inserting the first page name.
NOTE: This version has 847 lines of changes from the previous version.
5/21/04
Version 3.80
* ClassPag has a new command under "Position..." to paste a filler
from a list selected by classification. The tool bar has a new
button with a "1" in the upper right to paste fillers by class.
The product configuration field "List Fillers by" on the "User Preferences"
screen has a new value "CLAS" to make the "f" hot key display a list
of fillers sorted by classification.
* The windows to paste fillers by name and by size now show the
classification if there is room.
* The product configuration screen "Ad Importing"/"Importacion de Avisos"
now has a third field for alternate file name extensions to copy.
* The product configuration screen "Ad Loading"/"Cargar de Avisos" has a new
field "Read VER file"/"Leer archivo VER" to scan for .VER files in import
directories. The files should have a name with the format
edition --- weekday --- MM-DD-YYYY,VER
If this flag is set, and if the control record for a directory has an empty
run date, and if there is no sort file, ClassPag will display the date
embedded in the name of the .VER file.
There should be at most one .VER file in a directory.
ClassPag will take the date from the first one that it finds.
* The readdn now sets the sort file date to the date from the file name
of the first .VER file in the directory that contains the input list file.
* The readdn program has a new -s option to write classsrt.out and ceps.out
files. This eliminates the need to use command line redirection to capture
the sort file and the need to create an empty eps file.
* The readdn program has a new -l option to find the first .lst in the current
directory. This eliminates the need for scripts to locate the file.
* To use the new readdn interface, in the product configuration in the
"Ad Loading" screen, set the copy command to "call CopyImportFiles" and the
import command to "$CPAG_INT/readdn -s -l", and in the "Ad Importing" screen,
set the interface alternate extensions to "lst" and "VER"
* Added a new setwordbw.ps postscript file that changes color text in some
MS Word ads into black. To use this module, on the product configuration
screen "Additional PostScript", set the field "Before External Word"
to "include setwordbw.ps".
* listdirs.sh has a new -v option to list VER files.
* cronbuild.sh has a new +w option to copy development files from "wtpooh"
before starting the build.
NOTE: This version has over 2000 lines of changes from the previous version.
5/23/04
Version 3.81
* The field "Fill Front Page"/"Llenar Pra.Pag" of the classification database
has a new value "X" to specify classifications that do not require headers over
display ads, whether the display ad is out of classification or is at the top of
a column. It combines the effect of "B" (to avoid placing headers at the top of
a column) and "D" (to avoid placing headers when out of classification).
* The Box Information window on a class header now shows "TopHdr: No" if the
class does not require headers at the tops of columns ("Fill Front Page" is "B"
or "X") and "HdrsOnAds: No" if the class does not requires headers when the ad
is out of classification ("Fill Front Page" is "D" or "X").
NOTE: This version has 187 lines of changes from the previous version.
6/8/04
Version 3.82
* The direction of the numbers on the page preview ruler is now settable.
The product configuration screen "User Preferences"/"Preferencias de Usuarios"
has the new fields "Show rules on the sides of pages Left" and "Right"/
"Mostrar marcas en lados de paginas Izquierda" and "Derecha"
to set the directions of the rules.
The values are "ASC" for ascending order up the page (0 is at the bottom),
"DESC" for descending order (0 is at the top), and "NONE" for no rules.
The default is "DESC".
Inside a pagination session, you can change the rules for that sesion with
"Cmd -> Misc -> Set rule direction".
The values for each session are stored in the control record fields "Rules L"
and "R"/"Marcas I" and "D" so that you can customize them by import area.
* The page preview display now shows ruler in the multiple page mode when just
one page is showing. This should eliminate the need to enter the single page
mode.
* The page preview ruler now sometimes squeezes in the final number.
If the page was an exact number of units, there was not always room
for the last number.
* The windows to modify square-offs now show a warning if you modify the
width or page number of an inactive square-off.
* setup.sh now sets CPAG_EPS to ./ads if CPAG_EPS is empty and the current
directory has an "ads" subdirectory. This makes an easier place to store
EPS files for use in testing at SCS with "runcpag.sh scr".
* fixperm.sh now sets read and write permission on the .dat and .idx files
in /u/cpag and in the files /u/cpag/root/cache and /u/cpag/root/log.
* In expression evaluation dialogs in editor windows, the text is
formatted better.
* Initialize expression interpreter EvalSym and EvalCount return variables
in more places. This should prevent initialized variable warnings when
banner expressions have syntax errors.
* The access logger no longer complains about "COPYALL" actions.
NOTE: This version has 2362 lines of changes from the previous version.
6/9/04
Version 3.83
* Fixed a problem that could leave extra space when placing segmented ads front
to back below other ads in editions that need class headers at the tops of
columns but not below ads.
* The cronbuild.sh script now shows the dates of compform and cspice.a.
* Fixed a pagmod warning about invalid blank rule direction codes.
6/10/04
Version 3.84
* The field "Warn About Date Mismatches in Sort File" on the "Ad Loading"
product configuration screen has a new value "M" to force the run date to match
the sort file date. When the field is set to "M", ClassPag sets the run date to
the sort file date and the end date to the sort file date plus the "Ending date
increment" from the "Page Numbers" screen. ClassPag write-protects the run date
and end date fields in the edition parameters dialog so that users can not
change them. People with interfaces that always pass a correct sort file date
can use this new value to ensure that folio date always matches the extraction
date.
* File name expressions in folio templates now have access to the variables
PrinterName, PaperName, SeparationType and SpreadName. This allows you to define
customized templates for different printers or spreads in cases that you can not
handle more generally with the folio text "All Plates", "Is Folio" or "Dummy"
fields.
PrinterName is the print command of the paper entry used to print the page.
PaperName is the descriptive name of the paper entry used to print the page.
SeparationType is the "Create Separations" field of the current paper entry.
SpreadName is the descriptive name of the spread entry used to print the page.
* The readdn.sh interface script now moves the eps files from the
current work directory to /u/agateads instead of copying them.
This should run faster (as long as /u/agateads is on the same file system)
and should prevent eps files from accumulating in work directories.
Also, the script now runs readdn with -s and -l so it no longer needs
to generate file names on the command line.
To use the script, set the CopyCommand to "call CopyImportFiles"
and the ImportCommand to "$CPAG_INT/readdn.sh".
NOTE: This version has about 300 lines of changes from the previous version.
6/27/04
Version 3.85
* When ClassPag splits pages into blocks (with "PS Type" of "BLOCK" or
"RBLOCK"), if a column ends with a non-reservation ad that is segmented
or part of a square-off, ClassPag checks the adjacent columns.
If the bottom ad in an adjacent column is a normal ad and is lower on the page
and has the same class or if it is also segmented or in the same square-off,
ClassPag will use the bottom position of that ad when calculating blocks.
This prevents ClassPag from creating extra blocks in situations where
columns have space at the bottom because the column could not be justified.
In other cases, when ClassPag divides a page into blocks, you can print
the page with a paper entry that has a "PS Type" of "BEPS" or "BREPS".
* The agate filler setup window has new options to active and to inactivate
all agate fillers.
* Added -eps, -EPS and -none options to fixname.sh to rename the most recent
file with .eps, .EPS or no extension. The default is -eps.
* Added a -echo option to fixname.sh to echo the file renaming commands
instead of running them. -echo is the default.
* If cleanceps.sh is run from an absolute path, it defaults the ClassPag
home directory from the path.
* Added a -c option to the cleanceps.sh interface script to set the
ClassPag home directory if it differs from /u/cpag.
* The checkscr.sh script now scans for adlist.
* Fixed a problem in back-to-front pagination that could cause ClassPag
to omit class headers for top-level classes when the top-level class had
no line ads of its own and the class header had already been placed at
the top of another column or over a display ad.
* Fixed a problem that could cause ClassPag to hang when justifying
the space between agate ads that are three or more columns wide.
This problem dates back to at least version 1.201.
NOTE: This version has 480 lines of changes from the previous version.
NOTE2: If the new printer icon in the leftmost position in the toolbar
is blank, copy the file explist.xxm to the directory /u/scs/tools/icon/
If you have a /u/scs_cpag/tools/icon/ directory, copy it there as well.
6/28/04
Version 3.86
* The product configuration screen "Classified Heading Placement"/"Ubicacion
de Encabezados de Clasificaciones" has a new field "Omit over fillers"/
"Omitir sobre rellenos" to omit headers over display and agate fillers, even if
the fillers have non-empty classes. The default value of "Y" places headers
with the same rules as for display ads. The value of "N" omits headers when
an ad of a different class is over the filler. Use this value if you assign
fillers to classes to control their positions, but you do not want headers over
the fillers.
* Class headers above display ads in square-offs positioned at the bottom with
display ads at the top are now kept with the display ads. They used to be left
at the bottom of the page.
* Fixed a problem that could make loose square-offs when a class had a header
and a display ad but no line ads. The column fit check would check for enough
space for the height of the header and the display ad.
* Fixed a problem with inverted square-offs with display ads and more than a
page of line ads where ClassPag would invert the first page instead of the
mixed page with display ads and line ads.
* Fixed a problem drawing grayed text when an ad was dragged.
NOTE: This version has 2519 lines of changes from the previous version.
6/30/04
Version 3.87
* When square-offs are configured for big display ads at the bottom,
if two ads are on top of each other and are the same width,
ClassPag will place the larger ad on the bottom.
* setup.sh now adds ":" and "0" to DISPLAY if needed.
* Added cronbuild.sh options "+a" that turns on all build options (like "a")
and "-a" that turns off all build options.
NOTE: This version has 116 lines of changes from the previous version.
7/1/04
Version 3.88
* Added a second report for missing images that includes the ad number,
description, class, size, and file name. This report is more useful
that the original report when EPS file names differ from ad numbers.
* The setup menu has a new option to run the SCS Menu System /u/scs/bin/menu,
If you are root, you can use
System Management -> Printers -> Printer Configuration
to view the printers in the standard printer interface and [Insert] to add
a new printer. ClassPag uses its own printer system to print EPS files and
the SCS Standard Printer Interface to print screen captures and lists.
* The readdn interface program now takes ad descriptions from the account
field at column 35 instead of the ad description field at column 156.
* The readdn interface program now appends the sort key to the ad description
only for line ads. This leaves more space for the account field in display ads.
* The readdn interface program no longer tries reading from stdin with -l
if it does not find a list file.
* The rpt.sh script has a new -debug command line option to enable report
writer debugging.
* Fixed uninitialized variable errors when copying folios from another product.
* Increased the number of rows in the window to print missing and missized ad
reports.
NOTE: This version has 600 lines of changes from the previous version.
7/8/04
Version 3.89
* Banner text expressions can now use the variables PrevBookName,
PrevBookPageNumber, NextBookName and NextBookPageNumber.
The variables contain the BookName and BookPageNumber of the previous
and next pages. They can be useful when creating jump boxes.
* When the configuration parameter is set to disable the delete ad button,
the pagination display now no longer shows the button in the toolbar.
* Added support for mirroring similar to SCS/Track.
ClassPag installs now copy sample mirroring scripts in /u/cpag/mirror.
To use the scripts, copy them to /etc/mirror and customize mirror.conf
and possibly the *.include and *.exclude files.
You can use these scripts in dedicated ClassPag installations or
at installations where ClassPag and Track use the same primary server.
These scripts require two servers, a primary and a secondary.
The servers should have two network cards so that they can be on
both a public network and a private network.
Clients access the servers through the public network.
The mirroring system uses the private network to avoid overloading
the public network.
A network card can have more than one public IP address.
The two servers have three public IP addresses between them.
Each server has its own public IP address.
In addition, the current primary server has a shared IP address.
Clients should access the system through the shared IP address.
For example, you could have the primary server at 10.0.3.1, the secondary server
at 10.0.3.2, and the shared IP at 10.0.3.100. Normal clients, for example,
WebTermX, would run ClassPag on the currently active server through the shared
IP 10.0.3.100. For system administration, you could access a specific server
through 10.0.3.1 or 10.0.3.2.
If the primary server fails, go to the secondary server and run the command
"mkprime". This command tells the secondary to take over the shared IP address.
Clients that access the system though the shared IP address can then reconnect,
and they will now talk to the secondary server.
When the primary server is restored, go to that server and run the command
"mkprime -s". This command tells the primary to take over the shared IP
address. With the "-s" option, the command tells the secondary server that
it should free the shared IP address.
You can run the "mirror" command at any time to view the status of the servers.
The mirroring system includes two scripts, copy_fs and cron_sync that copy files
from the primary server to the secondary server. Only these two scripts should
be run directly. The other scripts are all used by these scripts.
copy_fs copies system files and ClassPag files.
It should be run nightly, usually through a C70-level script in
/u/scs/maint/cleanup. The ClassPag installation provides a
sample script in /u/cpag/interface/C75cpag.sh.
Copy /u/cpag/interface/C75cpag.sh to /u/scs/maint/cleanup and
modify it to set COPY to "copy_fs".
The C75cpag.sh script writes a log to /u/cpag/root/log/cleanup.log.
You can check this log to ensure that the backup has run.
If you run the backup as part of the nightly SCS cleanup, you do not
need to worry about having the backup conflict with the SCS cleanup.
The SCS tools installation creates a cron job that runs the SCS cleanup
every night. The root crontab line for the nightly SCS cleanup is
0 4 * * * /u/scs/maint/bin/scsmaint cleanup cron # SCS Cleanup
You do not need (and should not make) a separate cron job to run
the copy_fs script.
cron_sync can be set to copy just rapidly changing files. It should be run
periodically (anywhere from every 5 minutes to every hour, depending on your
synchronization requirements) as a cron job. Each time the script runs,
it places a load on the pagination server, so you must weigh the backup
requirements with the pagination performance. This script is independent
of the copy_fs script, except that it shares some of the setup.
If the backup server has access to the interface files, and if you don't
mind restarting a pagination session from the beginning during a failover,
you do not need to run this script.
The cronex.sh interface script has an example cron line
0,15,30,45 * * * * /etc/mirror/cron_sync > /tmp/cron_sync.log 2>&1 # cpag copy
You must customize the files to copy with mirror.include, mirror.exclude,
cron.include and cron.exclude.
mirror.conf = Configuration file for the mirroring system.
This is the only script that you should modify. Set the variables:
THIS_NODE = The node name of this server on the public network.
OTHER_NODE = The node name of the other server on the public network.
THIS_NODE and OTHER_NODE should match the first part of "uname -n".
THIS_XNODE = The node name of this server on the private network (usually this node + x).
OTHER_XNODE = The node name of the other server on the private network (usually other node + x).
If you use the "x" suffix, you do not need to change THIS_XNODE or OTHER_XNODE.
SHARED_IP = The shared IP that is taken by the controlling system.
The rsync copy will run only from the system with this IP.
SHARED_NETMASK = The netmask of the network with the shared IP.
SHARED_BROADCAST = The broadcast of the network with the shared IP.
ETHNET_ALIAS = The interface with the shared IP (usually eth0:0)
copy_fs = Cron script to copy from the primary to the backup with rsync.
This script should be run nightly, usually through a C70 script
in /u/scs/maint/cleanup.
mirror.include = directories and files to copy, for example,
/etc/hosts, /u/scs/**, /u/scs_cpag/**, /u/cpag/**
mirror.exclude = directories and files contained in mirror.include that
should not be copied, for example, /u/scs/env/data/*
cron_sync = Cron script to copy /u and /u1 from this node to the other node.
This script should be run every 15 minutes to copy work directories.
It runs rsync with --exclude=* to copy files listed in cron.include
but not in cron.exclude.
cron.include = directories and files to copy.
cron.exclude = directories and files contained in cron.include that should
not be copied.
mirror.def = Internal script with common definitions used by the other scripts.
mirror = Run this script to see the status of the mirroring system.
mirsec = Internal helper script used by the mirror script on the remote system.
mirror.test = Script to the command line if mirroring is enabled.
mkprime = Make this server the primary.
If both servers are up, make the current server the primary with
mkprime -s
If only one server is up, make it the primary with
mkprime
mksec = Internal helper script used by the mkprime script.
* Rebuilt the makehelp.sh script to improve the formatting of the top level
index.html file and to use the new SCS logo.
* Made syntax changes for the new stricter comma checking in the 4GL compiler.
NOTE: This version has about 440 lines of changes from the previous version
plus over 1100 lines of new scripts for the mirroring system.
NOTE2: This version contains a version of the 4GL with a problem where the
"end" key causes lists to scroll so only the last line shows at the top.
7/13/04
Version 3.90
* Fixed a problem in back-to-front pagination with subclasses with class headers
copied from parents where an in-line display ad over line ads could be covered
by the class header of the subclass of the display ad and then the class header
of the main class. If the headers have the same ad number, ClassPag now
suppresses the second header. This problem might have been introduced
in version 3.85.
NOTE: This version has 161 lines of changes from the previous version.
7/19/04
Version 3.91
* pstoepsf.sh has a new -rebuildpreview to rebuild the preview even if one
exists. Without this option, the script does nothing when a preview exists.
You can use this option to rebuild bad previews.
* Added an epstosort.sh interface script to generate a sort file from a
directory of EPS files. This can be useful for creating test data.
The options are
-w # = set the column width in points
-g # = set the gutter width in points
-nf = use a 96 point column and a 12 point gutter
-d DDMMYYYY = set the date
* The test to keep class headers above display ads when inverting square-offs
now takes class headers over display ads even if the class headers aren't marked
as part of the square-off. This could have caused doubled headers in
square-offs if you touched an ad on the same page.
* When ClassPag places class headers over a display ad, if the display ad is
marked as part of a square-off, ClassPag now assigns the class headers to the
square-off. This could have caused headers to stay around even if you use
the square-off option to free all ads inside the square-off.
NOTE: This version has over 500 lines of changes from the previous version.
7/21/04
Version 3.92
* ClassPag now allows you to drag square-offs by dragging the banner or an ad
in the square-off. Click on the new tool bar button "Position a square-off"/
"Posicionar encuadrado" or use Cmd -> Position -> "Position square-off"/
"Posicionar encuadrado" and then drag the banner or ad. You can set the column
and the position at the top or bottom. After you set the position, ClassPag
automatically reflows the ads to move the square-off to its new location.
* The dialog to add fillers now allows you to set the classification.
This makes it easier to add directories of class-specific fillers.
* ClassPag now links to a new version of the tiff library that supports files
with double byte color indices. This allows ClassPag to display previews in
EPS files saved with new applications.
NOTE: This version has over 500 lines of changes from the previous version.
7/22/04
Version 3.93
* Increased the full list limit in fillers lists from 100 to 500.
* The "User Preferences"/"Preferencias de Usuarios" screen has a new field
"Maximum items in a sortable list"/"Entradas máxima dentro una lista ordenada"
to set the number of items in some lists to keep them sortable.
The default is the full list limit, currently 500.
This value currently affects only the agate and display filler lists in
the product configuration. If the lists take a long time to open and you
do not need to sort them, you can set the number smaller. If the lists
open quickly and you need to sort them, you can set the number higher.
* Fixed a problem where display ads could jump over one column banners
in inverted square-offs.
NOTE: This version has 2068 lines of changes from the previous version.
7/23/04
Version 3.94
* The banner setup window has a new hotkey "Show banner text files"/
"Mostrar archivos de texto de carteles" to show all of the files
listed in banner image entries. For entries where the file name
is an expression, it also shows the result of the expression
for the current session. You can use this option to generate
a complete list of all banner images.
* The color selection table for ad and class colors has new commands
"Random from RGB"/"Random de RGB" and "Random from table"/"Random de tabla"
to select random values for each of the RGB values or to select a random
entry from the table. This can be useful when you need to pick different
colors for a large number of classes. Selecting RGB values will produce
a wide range of values, while selecting table entries will produce colors
more likely to be present on the X server.
* The spread field "Pair as Tab Spreads"/"Emparejar como tab" has a new
value "INVPAGE" to produce inverted single pages.
* Spread options that print all pages one across now shift the registration
marks on the right side on pages with extra columns.
NOTE: This version has 228 lines of changes from the previous version.
8/03/04
Version 3.95
* The field "Place if no ads in class"/"Colocar si no hay avisos en la clase" on
the product configuration screen "Classified Heading Placement"/"Ubicacion de
Encabezados de Clasificaciones" has a new value of "D" to place class headers if
the class contains display ads or line ads. As before, the default value of "F"
places class headers only if the class contains line ads, and the value of "T"
places all class headers whether or not the class has ads.
* In a square-off with inverted display ads, if all of the display ads are
pre-placed, for example, if you manually position an ad in the square-off or on
the same page as the square-off, ClassPag no longer tries to invert the display
ads. This prevents ClassPag from undoing the inversion and from undoing manual
placements.
* Increased the table in the "View Ad Directory" list from 100 to 2000 entries.
Having a large number of directories no longer causes errors.
* Changed the "vg" option in runcpag.sh to run valgrind with "--tool=memcheck",
which is required for valgrind 2.1.2.
* Added and updated Steve's maketarw.sh script. The script uses a work area
(or takes one on the command line) and saves it to /u/cpag/temp/ as
product-workarea-date.tar.bz2. The tar includes a "save" subdirectory with
the control record and the product transactions.
* Updated Steve's product configuration formula.
* Added compnn.sh, makenn.sh, and readnn.c to start an AdVision interface.
NOTE: This version has 11621 lines of changes from the previous version.
9/2/04
Version 3.96
* When either of the product configuration fields "Flow one column display ads
if possible" or "Unflow In-Column Display Ads" are set, if a column has a
one-column display ad below a compatible class header at the top of a column or
immediately below a manually positioned ad, and then if you unflow ads, ClassPag
will unflow the display ad. This fixes a problem where ClassPag would unflow
the class header but keep the display ads, and then the display ads would end up
at the top of a column without the class header.
* Improved the control record extraction in maketarw.sh.
* The rcpuniq.sh script has new options -text, -epsf and -filetype
for use with the -mac option,
-text sets the Mac file type to TEXT. This is the current default.
-epsf sets the Mac file type to EPSF. Sometimes Quark needs this.
-filetype followed by a four letter string sets the Mac file type to
that string. For example "-text" is equivalent to "-filetype TEXT".
Use file type TEXT when sending files to a RIP.
Use file type EPSF when sending files to Quark.
The Quark command to open a picture box shows only EPSF and TIFF files.
* Enhanced the readnn interface program.
* mapclass.frm for the nn interface now scans the files input.fil and class.fil.
* maketar.sh and lnexe.sh now include the readnn interface program.
* Updated some copyright notices to 2004.
NOTE: This version has over 2400 lines of changes from the previous version.
9/17/04
Version 3.97
* ClassPag can now preserve classifications when it converts internal
agate ads to fillers or class headers.
When ClassPag converts internet ads to external EPS files, it now writes
the class name in a %XClassName comment.
When ClassPag loads EPS files as fillers, if the EPS file has a %XClassName
comment and if the listed classification is present, ClassPag creates the
display or agate fillers with that class. Otherwise ClassPag uses the
current class selected in the load command.
When ClassPag loads EPS files as banners for class headers, if ClassPag
can not determine the classification from the name of the EPS file,
if the EPS file has a %XClassName comment, ClassPag creates a class
header banner for that class.
* When ClassPag loads fillers and class headers from EPS files,
it can now handle classes with leading spaces. When ClassPag checks
the %XClassName value and the file name against the classification
database, it starts as before by removing all of the spaces, but then,
if there is no match, it tries adding spaces on the left.
* When ClassPag creates class headers for a class with spaces in its name,
ClassPag removes the spaces when it builds the banner name.
* The list to modify class entries in a class sequencing list has a new command
to count the number of entries in the list. This can help when you are checking
that all of the tables have the correct number of classes.
* The command to copy a class sequence list from another product now shows
a warning if the current product does not have any lists. The copy places
the new items in the current list, so if the current product has no list,
there is no currently selected list, and the copy can not do anything.
The copy used to return without doing anything.
* To run the advision interface, in the product configuration, on the
"Ad Loading" screen, set the Copy Command to "call CopyImportFiles" and
the Import Command "$CPAG_INT/mapclass.sh nn".
In the "Ad Importing" screen, set one of the "Interface has ... others"
fields to "fil".
The interface reads the files galley.fil (with the text of the line ads),
input.fil (with the depth and sort key of the line ads), and class.fil.
The converted ads use the default format "linea". The interface expects that
this format is empty. If you do not have a format with this name, you should
create one. In the window to modify formats, set Name to "linea", Viewable
to "Y", Description to "default format" (or whatever you want), Device Type
to "PSRIP", and Composition Language to "ENG".
Leave all of the column widths, fonts, and font sizes empty.
The format does not need to set anything. It can be as simple as a comment.
If the format generates any text, that text will appear in every ad.
* The readnn program reads formats from the directory "/u/advision/fmt".
This directory should contain format files copied from the advision system.
The file names are case-insensitive and should have the extension ".fmt".
* The readnn program reads fonts from the file "/u/advision/pst/advision.fit".
This file has lines like
/*<FNname> FONT____.FNT <FN#>,,(RO,BO,IT,BI), OPTIONS; */
Courier "COU.fnt" 1,,(1,2,3,4);
Courier-Bold "COUB.fnt" 2,,(1,2,3,4);
Courier-Italic "COUI.fnt" 3,,(1,2,3,4);
Courier-BoldItalic "COUBI.fnt" 4,,(1,2,3,4);
The readnn program reads the font table from the SCS Environment Manager
in order to map advision fonts to SCS Composition fonts.
For each font in the advision.fit file, ClassPag extracts the font names
in the first column and then scans the SCS Environment table for a font
with the same name in the "Value" field.
For every font in the advision.fit that you need, you must enter the
same font into SCS Composition. The matching is by the postscript
font name. You can enter the fonts into SCS Composition with any
PS_FONT_# and with any name (the "Description" in the environment)
that you want. The numbers do not need to match the advision numbers.
* Added a testcomposition.sh script that runs "testfolio.sh -c".
You can test if SCS Composition is running with
cd /u/cpag
./testcomposition.sh
NOTE: This version has over 2000 lines of changes from the previous version.
9/17/04
Version 3.98
* ClassPag has new option to omit class headers. You can use this in
stand-alone square-offs to drop all of the headers to save space. Use
Cmd -> Misc -> Place Class Headers
to change the setting. The setting is stored in the control record in the field
"Plc Hdr"/"Col Cab". The default value comes from the control record in the
field "Place class headers"/"Colocar cabezales" on the screen
"Classified Heading Placement"/"Ubicacion de Encabezados de Clasificaciones".
* The outext export command now has access to the numeric variables SortFilePub
and SortFileEdition. The variables capture the pub and edition codes from the
sort file and can be useful when naming outext files to send back to AdMAX.
NOTE: This version has about 300 lines of changes from the previous version.
10/3/04
Version 3.99
* ClassPag now supports a second merge directory when importing ads.
The second merge directory should be called "merge2".
ClassPag scans the merge2 directory only when the merge directory is valid.
Between the main directory, the merge directory, and the merge2 directory,
ClassPag can now combine three extractions in a single session.
* Fixed a problem where ClassPag would sometimes not place superheads if the
class with the superhead had no ads and the first class under the superhead was
a square-off. In order to avoid placing extra copies of superheads when the ads
under the superhead are locked, ClassPag does not place superheads if all of the
ads in the first subclass have been placed.
* In the advision interface, to work with composition, logos must have
a lower case .eps extension. From a unix directory, you can use
for name in *EPS ; do mv $name `basename $name EPS`eps ; done
To convert the entire file name to lower case, you can use
for name in *[A-Z]*.eps ; do mv "$name" "`echo $name | tr '[A-Z]' '[a-z]'`" ; done
* More improvements to the advision interface.
Handle logos with and without previews.
Handle close matches with Italic/Oblique for font names.
Trim CRs the ends of fields,
Start with the font number for Helvetica-Bold.
Trim .eps and .ps from logo names.
Track column width and indents to force logos to fit inside columns.
Detect display ads.
Implement merges by maintaining multiple streams.
If a command is followed by a comma, the first argument should be empty.
Start parsing .dft file for RS lines.
In /u/advision/pst, copy the active dft file to "advision.dft".
sd with no params sets 100 black instead of 0 white.
Boxes reset the box percent to 0 white.
NOTE: This version has about 500 lines of changes from the previous version.
Comments
0 comments
Please sign in to leave a comment.