0.3 Mon Aug 23 19:39:00 1999 0.4 Sun Sep 5 13:49:00 1999 0.5 Sun Sep 5 19:45:00 1999 0.6 Mon Sep 6 18:17:00 1999 - consolidate into single file ------------------------------------------------------------- Revision history for Perl extension MARC. 0.01 Tue Sep 7 10:48:10 1999 - original version; created by h2xs 1.18 - linux command: h2xs -A -X -n MARC 0.61 Tue Sep 7 12:56:23 CDT 1999 - convert version 0.6 into CPAN format (lots of little changes) 0.62 Fri Sep 10 05:18:00 1999 - revised datastructure to hash of tags plus non-tag elements like 'array' which serve as structured views into data 0.63 Sun Sep 12 20:38:00 1999 - permit incremental processing to reduce memory footprint 0.65 Fri Sep 17 08:07:42 1999 - add openmarc,nextmarc,closemarc,deletemarc 0.7 Sun Sep 21 07:15:00 1999 - major upgrade: revise new for incremental reads and tag maps - add selectmarc,searchmarc, createrecord, _joinfield, addfield - add error processing and use Carp - add header/body/footer outputs - revise documentation 0.71 Wed Sep 22 15:50:31 1999 - compute @tags once in _marc2html, fix $outputall detection - add Win32 test and install - t/test1.t uses new output file spec, tests append & $var 0.72 Fri Sep 24 07:42:00 1999 - add getvalue - add doc example: xml_header, xml_body, xml_footer - add doc example: createrecord, addfield 0.80 Sun Oct 3 17:14:00 1999 - add isbd and unimarc 0.81 Mon Oct 4 22:25:17 CDT 1999 - update CPAN doc files: Changes, README, Makefile.PL - add isbd to t/test1.t 0.82 Wed Oct 6 13:30:22 CDT 1999 - Win32 Makefile.PL improvements including automatic html install - Added single quotes to hash keys in MARC.pm and t/test1.t to eliminate nuisance warnings from Perl 5.004. 0.83 Mon Oct 11 22:22:00 EST 1999 - Updated MARC.pm line 108 to store scalar references instead of scalars. This will hopefully cut down on duplication of data in the MARC object. - Also, updated the getvalue(), searchmarc() and addfield() methods to reflect the change in the way subfield data is stored. - Added line 220 to return '0 but true' instead of 0 when no records were read in. This will allow for statements like $x->openmarc("test.mrc") || die; 0.84 Tue Oct 12 22:07:18 CDT 1999 - more Win32 Makefile.PL tweaks after TPJ technical review - add binmode for marc file read/write - unspecified 'increment' defaults to 0 - fix repeated subfield in field bug in addfield 0.85 Wed Oct 13 21:19:00 EST 1999 - modified addfield to push scalar references instead of scalars when adding subfield data to the $x->[record]{field}{subfield} data member on line 859. - updated closemarc to return 1, to allow constructs like $x->closemarc() || die; 0.9 Sun Oct 17 19:48:00 EST 1999 - modified deletemarc() to support deleting specified fields and subfields - modified addfield() to support adding fields in tag order 0.91 Tue Oct 19 18:01:43 CDT 1999 - add demo addlocal.pl, microlif.001, and directory eg - closemarc() returns results of close() - filter '\r' and '\cZ' from binary input stream - fix "delete all records" bug 0.911 Wed Oct 20 21:49:02 CDT 1999 - add "exists" tests to getvalue() - use scalar $callno in addlocal.pl 0.92 Sat Oct 23 00:00:00 CDT 1999 - initialize loop counter in getvalue() to avoid warnings - add methods for manipulating "000" and "008" fields: unpack_ldr, bib_format, unpack_008 - add internal subroutines supporting those methods: _unpack_ldr, _bib_format, _unpack_008, - add internal update subroutines: _pack_ldr, _pack_008 0.93 Wed Oct 27 21:30:17 CDT 1999 - deprecate length(), use marc_count() instead - new: bless earlier so _readxxx can use methods - add error checks to file open/close, use binmode - add lineterm for _readmarcmaker and default to DOS - always store header in $record->{'000'} tag position - fix bugs in 'i12' subfield structure - add usmarc_default, ustext_default, MARCMaker charset encode/decode - use createrecord, addfield in _readmarcmaker - fix fieldnotvalue in searchmarc - extensive changes to getvalue to cover '000' tag and indicators - use getvalue in unpack_008 - return undef instead of die in _unpack_008 - allow lineterm option in output, 'format' defaults to 'marc', lineterm to '\n' except MARCMaker (CRLF) - add nolinebreak option for MARCBreaker output - 'html_header' outputs "Content-type...", 'html_start' does "" - _writemarc also updates '000' size data in structure - warnings off in addfield - update copyright - add test2.t and test3.t plus supporting files: makrbrkr.mrc, brkrtest.ref, makrtest.src - add filestring and out_cmp test utilities, MARCopt.pm stub - add MARCMaker/Breaker, getvalue, and searchmarc tests 0.94 Thu Oct 28 20:23:57 CDT 1999 - added numerous "exists" tests for hash queries - add 'title' parameter to html_start - extra error checking: addfield - new getupdate() method - add tests for searchmarc, deletemarc, addfield, getupdate, html_xxx formats - fix test3.t to use MARCopt everywhere 0.95 Tue Nov 02 20:49:09 CST 1999 - clean up the Win32 "make clean" implementation in Makefile.PL - add tests for selectmarc - add 'title' option for URLs output - terminate addfield if $subfield_id eq "\036" from getupdate() - pod updates: SYNOPSIS, Option Template, various typos - add updaterecord() - template extensions for deletemarc(), searchmarc(), getvalue() - add eg/fixlocal.pl demo and eq/specials.001 0.95d Wed Nov 03 17:00:01 EST 1999 - Removed FF_ prefix from @LDR_FIELDS. Left package globals for fixed fields and leaders as globals: this should facilitate anybody who wants to subclass for MFHL, community, records. - Added pack_008 and pack_ldr. Added get_hash_008 and get_hash_ldr for future tied interface. Fixed bugs. (FF_ prefixes in hash keys.) - Added and updated docs for the new functions. - Added comment on how to renumber tests. - Added tests of pack_008 and pack_ldr. Fixed some test bugs with FF_ prefixes and non-existent functions. 0.96 Wed Nov 3 23:04:31 CST 1999 - fix typos in pod2man and pod2html output - fix test3.t like test1.t 0.97 Fri Nov 5 17:44:15 CST 1999 - replace '%$' construct (4 places) which designates pseudo-hash in 5.005 and fails in 5.004. Detected by CPAN-Testers - Add tests for deletemarc() subfield to t/test2.t 0.98 Fri Nov 12 21:13:39 CST 1999 - fix addfield reorder bug (new tag > existing) - improved eg/addlocal.pl and added eg/uclocal.pl - moved binmode from _readmarc* to openmarc() and new() to get around unwanted seek on binmode in Win32 5.00402. 0.99 Sun Nov 14 21:59:00 EST 1999 - created MARC::XML subclass to handle MARC<->XML conversions - moved _marc2xml() from MARC.pm into MARC::XML 0.991 Sun Nov 21 18:49:00 EST 1999 - removed MARC::XML specific pod from MARC.pm and added to MARC::XML 1.00 Mon Nov 22 22:22:32 CST 1999 - add warnings for unsupported output formats - return undef for output failure, test in place of XML 1.01 Sun Dec 05 23:14:15 CST 1999 - add invalid size checks to _readmarc() - add header check to _readmarcmaker() - delete length() method and CORE::length() overrides - add $TEST; replace carp with mycarp 1.02u Mon Dec 20 06:52:00 EST 1999 - added *map* series; supports a data-index view of marc. - added deletefirst and updatefirst to support ties - added getmatch and insertpos to support update or insert of subfields. - added getfields/updatefields for fine-grained access to the {array} structures. Allows "in-place" update of fields. - changed add_fields to use add_map. Lets subclasses have a policy of how they want their indices to look. - changed _readmarc and _readmarcmaker to use add_map. Good for testing. - Added simple tests for *first and *map* series as test4.t More complex and complete tests are in MARC::Tie. - Added docs for *map*, getmatch,*fields*,getmatch and insertpos. 1.03 Mon Jan 17 15:21:54 CST 2000 - Use fill char "|" for "none" in eg/addlocal.pl - integrate "102u" changes into CPAN format - fix bug in addfield where add_map not called if ($tag<10) 1.04 Mon Jan 24 22:31:26 CST 2000 - oops, had to fix the Win32 5.00402 binmode again (c.f 0.98) - added quotes to 'rebuild_map' used as hash key (5.004 warnings) - add docs for "keys" in hash returned by 'unpack_ldr' - add xml format error messages 1.05 Sat Jan 29 22:59:03 EST 2000 - Removed unnecessary quotes in various potentially tainted variables. - Removed bad references to FF_* in docs. - Updatefields() no longer assumes that fields with the same tag are contiguous (e.g. cjk). - Getfields() no longer assumes that fields with the same tag are contiguous (again, cjk). - Docs updated to reflect the relaxed assumption. - Extensive quoting of keys for a more warning-free experience. Sun Jan 30 14:34:02 EST 2000 - Created add_005s(), _make_005(). - Inserted add_005s into output so now we are correctly datestamped. - Docs added for 005 functionality. Mon Jan 31 12:55:52 EST 2000 - Fixed $args->{'record'} complaint if $args does not exist. - Now we return "19960221075055.7" when in $TEST mode for 005. - Fixed and updated test2.t and test files makrbrkr.mrc and makrtest.src. (now have all canonical 005's; makrtest had a 17 digit time, not 16 in the first record). 1.06 Sun Feb 27 22:00:00 EST 2000 - Added getfirstvalue to avoid dependency on index for Ties. - Added from_string and as_string; mainly for Tie but also has promise for searchmarc. Added option to rebuild map. - Created MARC::Rec and started moving functions to it. Thu Mar 9 22:00:00 EST 2000 - Finished the bulk of ::Rec-ising. - Normalised {records}-{record} handling and %params creation (_records and _params). - Updated searchmarc and deletemarc to more idiomatic Perl; fixed bugs. (Deletemarc was not updating {$tag}{$field}{subfield} information correctly; it does now since it uses rebuild_map). - Fixed one potential problem in _urls (looked at indicators when it should have only been looking at subfields). Sat Mar 11 22:00:00 EST 2000 - Checked that a subclass of MARC(:Btrieve) works even in the presence of MARC::Rec dependencies. - Tested Tie::MARC and Tie::MARC::Btrieve against 1.06 - Fixed bugs. All tests pass. - Updated Docs to reflect pervasive MARC::Rec presence and (few) additional functions. Sun Mar 12 14:39:27 EST 2000 - Configured shipping script for MARC. - Fixed numbering in test5.t. All tests pass. - Added option to read from a string for MARC::Rec. (nextmarc()) 1.07 Sun Apr 23 16:41:46 CDT 2000A - convert all usage to $MARC::TEST, $MARC::DEBUG. Clean up other "use vars" variables only needed in one package. Sync $VERSION. - Perl 5.6.0 warns on "join (//,", use "join (''," instead. - fixes to $naptime and $testfile in t/test5.t - openmarc did not set 'handle' and 'format' for MARC::Rec