[med-svn] r1527 - in trunk/packages/emboss/trunk/debian: . patches
charles-guest at alioth.debian.org
charles-guest at alioth.debian.org
Fri Mar 7 02:18:13 UTC 2008
Author: charles-guest
Date: 2008-03-07 02:18:12 +0000 (Fri, 07 Mar 2008)
New Revision: 1527
Added:
trunk/packages/emboss/trunk/debian/patches/patch-1-9
Removed:
trunk/packages/emboss/trunk/debian/patches/patch-1-3
Modified:
trunk/packages/emboss/trunk/debian/README.debian
trunk/packages/emboss/trunk/debian/changelog
trunk/packages/emboss/trunk/debian/patches/series
Log:
New upstream patch.
Modified: trunk/packages/emboss/trunk/debian/README.debian
===================================================================
--- trunk/packages/emboss/trunk/debian/README.debian 2008-03-07 01:15:29 UTC (rev 1526)
+++ trunk/packages/emboss/trunk/debian/README.debian 2008-03-07 02:18:12 UTC (rev 1527)
@@ -17,6 +17,15 @@
scripts.
+tfm uses Debian's pager by default
+----------------------------------
+
+The `tfm' program will use /usr/bin/pager instead of /usr/bin/more by default.
+/usr/bin/pager is managed via the `update-alternatives' utility and can point
+to other pagers such as `less' and `most'. This can be overriden by using the
+PAGER environment variable, just as in default EMBOSS installations.
+
+
EMBOSS Quick Guide relicenced
-----------------------------
@@ -25,4 +34,4 @@
'emboss'.
- -- Charles Plessy <charles-debian-nospam at plessy.org> Wed, 10 Oct 2007 09:07:24 +0900
+ -- Charles Plessy <charles-debian-nospam at plessy.org> Fri, 07 Mar 2008 10:23:12 +0900
Modified: trunk/packages/emboss/trunk/debian/changelog
===================================================================
--- trunk/packages/emboss/trunk/debian/changelog 2008-03-07 01:15:29 UTC (rev 1526)
+++ trunk/packages/emboss/trunk/debian/changelog 2008-03-07 02:18:12 UTC (rev 1527)
@@ -1,3 +1,13 @@
+emboss (5.0.0-6) UNRELEASED; urgency=low
+
+ * New bugfixes released upstream:
+ - Fixes failure on some databases if the PAGESIZE was set large
+ and the CACHESIZE was set small.
+ - Platform-independence modifications added.
+ * debian/README.Debian: described the change of default pager for tfm.
+
+ -- Charles Plessy <charles-debian-nospam at plessy.org> Fri, 07 Mar 2008 10:15:31 +0900
+
emboss (5.0.0-5) unstable; urgency=low
* New bugfixes released upstream.
Deleted: trunk/packages/emboss/trunk/debian/patches/patch-1-3
===================================================================
--- trunk/packages/emboss/trunk/debian/patches/patch-1-3 2008-03-07 01:15:29 UTC (rev 1526)
+++ trunk/packages/emboss/trunk/debian/patches/patch-1-3 2008-03-07 02:18:12 UTC (rev 1527)
@@ -1,220 +0,0 @@
-This patch was downloaded from:
-ftp://emboss.open-bio.org/pub/EMBOSS/fixes/patches/patch-1-3.gz
-
-Explanations for the changes are pasted from:
-ftp://emboss.open-bio.org/pub/EMBOSS/fixes/README.fixes
-
-Fix 1. EMBOSS-5.0.0/emboss/psiphi.c
-
-27 Jul 2007: Fixes a problem with reading more recent CCF files.
- Error traps cases where chains have no atom information.
-
-Fix 2. EMBOSS-5.0.0/ajax/ajindex.c
-
-9 Jan 2008: Fixes rare secondary index problem with input files over 2Gb.
-
-Fix 3. EMBOSS-5.0.0/nucleus/embindex.c
-
-18 Jan 2008: Order and fill fixes to sort out potential problems
- with kw/de/tx indexes.
-
-Fix 4. EMBOSS-5.0.0/ajax/ajseqdb.c
-
-19 Feb 2008: Fixes changed ID format in GCG databases.
- Fixes reading from PIR databases
-
-Fix 5. EMBOSS-5.0.0/ajax/ajseqtype.c
-
-19 Feb 2008: Fixes a problem with O in protein sequences for pyrrolysine.
- Lower case o worked, but upper case O was excluded as a
- gap character in early versions of PHYLIP. 'O' is no
- longer a gap character in EMBOSS.
-
-Fix 6. EMBOSS-5.0.0/ajax/ajseqwrite.c
-
-19 Feb 2008: Fixes a problem in GENBANK output format for mulitple
- lines of ACCESSION or KEYWORD records in an entry.
-
-Fix 7. EMBOSS-5.0.0/ajax/ajseqread.c
-
-19 Feb 2008: Fixes a problem in reading protein sequences from the
- Staden "spin" interface. The partial EMBL/SwissProt
- format was set to "nucleotide". All incomplete
- EMBL/SwissProt entries are now tested for amino acid
- characters and set to protein if any non-nucleotide
- characters are found.
-
-
-Fix 8. EMBOSS-5.0.0/emboss/dbxfasta.c
-
-19 Feb 2008: Fixes tokens that are longer than the maximum length in
- the resource definition.
- For IDs issues a warning when any ID is truncated.
-
-diff -c -N --recursive EMBOSS-5.0.0old/ajax/ajindex.c EMBOSS-5.0.0/ajax/ajindex.c
-*** EMBOSS-5.0.0old/ajax/ajindex.c 2007-07-06 13:18:48.000000000 +0100
---- EMBOSS-5.0.0/ajax/ajindex.c 2008-01-19 13:05:35.000000000 +0000
-***************
-*** 2516,2522 ****
-
- static ajint btreeNumIdCompare(const void *a, const void *b)
- {
-! return (*(AjPBtNumId const *)a)->offset - (*(AjPBtNumId const *)b)->offset;
- }
-
-
---- 2516,2529 ----
-
- static ajint btreeNumIdCompare(const void *a, const void *b)
- {
-! ajlong val;
-!
-! val = (*(AjPBtNumId const *)a)->offset - (*(AjPBtNumId const *)b)->offset;
-!
-! if(!val)
-! return 0;
-!
-! return (val < 0L) ? -1 : 1;
- }
-
-
-***************
-*** 11956,11963 ****
-
- static ajint btreeOffsetCompare(const void *a, const void *b)
- {
-! return (*(AjPBtId const *)a)->offset -
-! (*(AjPBtId const *)b)->offset;
- }
-
-
---- 11963,11976 ----
-
- static ajint btreeOffsetCompare(const void *a, const void *b)
- {
-! ajlong val;
-!
-! val = (*(AjPBtId const *)a)->offset - (*(AjPBtId const *)b)->offset;
-!
-! if(!val)
-! return 0;
-!
-! return (val < 0L) ? -1 : 1;
- }
-
-
-diff -c -N --recursive EMBOSS-5.0.0old/emboss/psiphi.c EMBOSS-5.0.0/emboss/psiphi.c
-*** EMBOSS-5.0.0old/emboss/psiphi.c 2007-07-06 13:15:29.000000000 +0100
---- EMBOSS-5.0.0/emboss/psiphi.c 2008-01-19 13:05:35.000000000 +0000
-***************
-*** 160,166 ****
- finishres = ajAcdGetInt("finishresiduenumber");
-
- /* reserve memory for and read in structure */
-! /* JISON */ pdb = ajPdbReadoldNew(pdbfile);
-
- /* check and set number of chain to be analysed */
- highest = pdb->Nchn;
---- 160,166 ----
- finishres = ajAcdGetInt("finishresiduenumber");
-
- /* reserve memory for and read in structure */
-! /* JISON */ pdb = ajPdbReadNew(pdbfile,0);
-
- /* check and set number of chain to be analysed */
- highest = pdb->Nchn;
-***************
-*** 440,445 ****
---- 440,448 ----
- ajint lowestres = 0;
-
- AjPAtom inlist = NULL;
-+
-+ if(!ajListGetLength(pdb->Chains[myindex]->Atoms))
-+ ajFatal("Chain %d has no atoms",myindex+1);
-
- /* read first atom in list into memory, but keep it on list */
- ajListPeek(pdb->Chains[myindex]->Atoms,
-diff -c -N --recursive EMBOSS-5.0.0old/nucleus/embindex.c EMBOSS-5.0.0/nucleus/embindex.c
-*** EMBOSS-5.0.0old/nucleus/embindex.c 2007-07-06 13:15:00.000000000 +0100
---- EMBOSS-5.0.0/nucleus/embindex.c 2008-01-19 13:05:44.000000000 +0000
-***************
-*** 1196,1208 ****
- entry->txorder = (entry->pagesize - 60) / ((entry->txlen + 1) + 12);
- entry->txfill = (entry->pagesize - 16) / (entry->txlen + 28);
-
-! entry->kwsecorder = (entry->pagesize - 60) / ((entry->idlen + 1) + 12);
-! entry->desecorder = (entry->pagesize - 60) / ((entry->idlen + 1) + 12);
-! entry->txsecorder = (entry->pagesize - 60) / ((entry->idlen + 1) + 12);
-!
-! entry->kwsecfill = (entry->pagesize - 16) / (entry->idlen + 4);
-! entry->desecfill = (entry->pagesize - 16) / (entry->idlen + 4);
-! entry->txsecfill = (entry->pagesize - 16) / (entry->idlen + 4);
-
- entry->idsecorder = (entry->pagesize - 60) / 24;
- entry->idsecfill = (entry->pagesize - 60) / 20;
---- 1196,1208 ----
- entry->txorder = (entry->pagesize - 60) / ((entry->txlen + 1) + 12);
- entry->txfill = (entry->pagesize - 16) / (entry->txlen + 28);
-
-! entry->kwsecorder = (entry->pagesize - 60) / ((entry->kwlen + 1) + 12);
-! entry->desecorder = (entry->pagesize - 60) / ((entry->delen + 1) + 12);
-! entry->txsecorder = (entry->pagesize - 60) / ((entry->txlen + 1) + 12);
-!
-! entry->kwsecfill = (entry->pagesize - 16) / (entry->kwlen + 4);
-! entry->desecfill = (entry->pagesize - 16) / (entry->delen + 4);
-! entry->txsecfill = (entry->pagesize - 16) / (entry->txlen + 4);
-
- entry->idsecorder = (entry->pagesize - 60) / 24;
- entry->idsecfill = (entry->pagesize - 60) / 20;
-***************
-*** 1251,1257 ****
- entry->cachesize,
- entry->idsecorder, slevel,
- entry->idsecfill, count,
-! entry->kwlen);
- if(!entry->idcache)
- ajFatal("Cannot open ID index");
-
---- 1251,1257 ----
- entry->cachesize,
- entry->idsecorder, slevel,
- entry->idsecfill, count,
-! entry->idlen);
- if(!entry->idcache)
- ajFatal("Cannot open ID index");
-
-***************
-*** 1267,1273 ****
- entry->cachesize,
- entry->acsecorder, slevel,
- entry->acsecfill, count,
-! entry->kwlen);
- if(!entry->accache)
- ajFatal("Cannot open ACC index");
-
---- 1267,1273 ----
- entry->cachesize,
- entry->acsecorder, slevel,
- entry->acsecfill, count,
-! entry->aclen);
- if(!entry->accache)
- ajFatal("Cannot open ACC index");
-
-***************
-*** 1282,1288 ****
- entry->cachesize,
- entry->svsecorder, slevel,
- entry->svsecfill, count,
-! entry->kwlen);
- if(!entry->svcache)
- ajFatal("Cannot open SV index");
-
---- 1282,1288 ----
- entry->cachesize,
- entry->svsecorder, slevel,
- entry->svsecfill, count,
-! entry->svlen);
- if(!entry->svcache)
- ajFatal("Cannot open SV index");
-
Added: trunk/packages/emboss/trunk/debian/patches/patch-1-9
===================================================================
--- trunk/packages/emboss/trunk/debian/patches/patch-1-9 (rev 0)
+++ trunk/packages/emboss/trunk/debian/patches/patch-1-9 2008-03-07 02:18:12 UTC (rev 1527)
@@ -0,0 +1,2367 @@
+This patch was downloaded from:
+ftp://emboss.open-bio.org/pub/EMBOSS/fixes/patches/patch-1-3.gz
+
+Explanations for the changes are pasted from:
+ftp://emboss.open-bio.org/pub/EMBOSS/fixes/README.fixes
+
+Fix 1. EMBOSS-5.0.0/emboss/psiphi.c
+
+27 Jul 2007: Fixes a problem with reading more recent CCF files.
+ Error traps cases where chains have no atom information.
+
+Fix 2. EMBOSS-5.0.0/ajax/ajindex.c
+
+9 Jan 2008: Fixes rare secondary index problem with input files over 2Gb.
+
+Fix 3. EMBOSS-5.0.0/nucleus/embindex.c
+
+18 Jan 2008: Order and fill fixes to sort out potential problems
+ with kw/de/tx indexes.
+
+Fix 4. EMBOSS-5.0.0/ajax/ajseqdb.c
+
+19 Feb 2008: Fixes changed ID format in GCG databases.
+ Fixes reading from PIR databases
+
+Fix 5. EMBOSS-5.0.0/ajax/ajseqtype.c
+
+19 Feb 2008: Fixes a problem with O in protein sequences for pyrrolysine.
+ Lower case o worked, but upper case O was excluded as a
+ gap character in early versions of PHYLIP. 'O' is no
+ longer a gap character in EMBOSS.
+
+Fix 6. EMBOSS-5.0.0/ajax/ajseqwrite.c
+
+19 Feb 2008: Fixes a problem in GENBANK output format for mulitple
+ lines of ACCESSION or KEYWORD records in an entry.
+
+Fix 7. EMBOSS-5.0.0/ajax/ajseqread.c
+
+19 Feb 2008: Fixes a problem in reading protein sequences from the
+ Staden "spin" interface. The partial EMBL/SwissProt
+ format was set to "nucleotide". All incomplete
+ EMBL/SwissProt entries are now tested for amino acid
+ characters and set to protein if any non-nucleotide
+ characters are found.
+
+
+Fix 8. EMBOSS-5.0.0/emboss/dbxfasta.c
+
+19 Feb 2008: Fixes tokens that are longer than the maximum length in
+ the resource definition.
+ For IDs issues a warning when any ID is truncated.
+
+
+Fix 9. EMBOSS-5.0.0/nucleus/embindex.c
+ EMBOSS-5.0.0/ajax/ajindex.c
+ EMBOSS-5.0.0/ajax/ajindex.h
+
+6 Mar 2008: Fixes failure on some databases if the PAGESIZE was set large
+ and the CACHESIZE was set small. Platform-independence
+ modifications added.
+
+
+diff -c -N --recursive EMBOSS-5.0.0old/ajax/ajindex.c EMBOSS-5.0.0/ajax/ajindex.c
+*** EMBOSS-5.0.0old/ajax/ajindex.c 2007-07-06 13:18:48.000000000 +0100
+--- EMBOSS-5.0.0/ajax/ajindex.c 2008-03-06 10:15:13.000000000 +0000
+***************
+*** 1364,1370 ****
+ {
+ id = bucket->Ids[i];
+ len = BT_BUCKIDLEN(id->id);
+! if((lptr-buf+1)+len > cache->pagesize) /* overflow */
+ {
+ ajDebug("WriteBucket: Overflow\n");
+ if(!overflow) /* No overflow buckets yet */
+--- 1364,1370 ----
+ {
+ id = bucket->Ids[i];
+ len = BT_BUCKIDLEN(id->id);
+! if((lptr-buf+1) + (len+1+BT_DDOFFROFF) > cache->pagesize) /* overflow */
+ {
+ ajDebug("WriteBucket: Overflow\n");
+ if(!overflow) /* No overflow buckets yet */
+***************
+*** 1986,1991 ****
+--- 1986,1994 ----
+ ajlong blockno = 0L;
+ ajlong rblockno = 0L;
+ ajlong lblockno = 0L;
++ ajlong ibn = 0L;
++
++
+ AjPStr mediankey = NULL;
+ ajlong medianless = 0L;
+ ajlong mediangtr = 0L;
+***************
+*** 2139,2148 ****
+ }
+
+
+! ipage = rpage;
+ if(strcmp(key->Ptr,mediankey->Ptr)<0)
+! ipage = lpage;
+
+ btreeInsertNonFull(cache,ipage,key,less,greater);
+
+
+--- 2142,2153 ----
+ }
+
+
+! ibn = rblockno;
+ if(strcmp(key->Ptr,mediankey->Ptr)<0)
+! ibn = lblockno;
+
++ ipage = ajBtreeCacheRead(cache,ibn);
++
+ btreeInsertNonFull(cache,ipage,key,less,greater);
+
+
+***************
+*** 2516,2522 ****
+
+ static ajint btreeNumIdCompare(const void *a, const void *b)
+ {
+! return (*(AjPBtNumId const *)a)->offset - (*(AjPBtNumId const *)b)->offset;
+ }
+
+
+--- 2521,2534 ----
+
+ static ajint btreeNumIdCompare(const void *a, const void *b)
+ {
+! ajlong val;
+!
+! val = (*(AjPBtNumId const *)a)->offset - (*(AjPBtNumId const *)b)->offset;
+!
+! if(!val)
+! return 0;
+!
+! return (val < 0L) ? -1 : 1;
+ }
+
+
+***************
+*** 9895,9901 ****
+
+ /* @funcstatic btreeInsertKeySec *****************************************
+ **
+! ** Insert a secpndary key into a potentially full node
+ **
+ ** @param [u] cache [AjPBtcache] cache
+ ** @param [u] page [AjPBtpage] original page
+--- 9907,9913 ----
+
+ /* @funcstatic btreeInsertKeySec *****************************************
+ **
+! ** Insert a secondary key into a potentially full node
+ **
+ ** @param [u] cache [AjPBtcache] cache
+ ** @param [u] page [AjPBtpage] original page
+***************
+*** 9936,9942 ****
+ ajlong blockno = 0L;
+ ajlong rblockno = 0L;
+ ajlong lblockno = 0L;
+!
+ AjPStr mediankey = NULL;
+ ajlong medianless = 0L;
+ ajlong mediangtr = 0L;
+--- 9948,9955 ----
+ ajlong blockno = 0L;
+ ajlong rblockno = 0L;
+ ajlong lblockno = 0L;
+! ajlong ibn = 0L;
+!
+ AjPStr mediankey = NULL;
+ ajlong medianless = 0L;
+ ajlong mediangtr = 0L;
+***************
+*** 10090,10099 ****
+ }
+
+
+! ipage = rpage;
+ if(strcmp(key->Ptr,mediankey->Ptr)<0)
+! ipage = lpage;
+
+ btreeInsertNonFullSec(cache,ipage,key,less,greater);
+
+
+--- 10103,10114 ----
+ }
+
+
+! ibn = rblockno;
+ if(strcmp(key->Ptr,mediankey->Ptr)<0)
+! ibn = lblockno;
+
++ ipage = ajBtreeCacheRead(cache,ibn);
++
+ btreeInsertNonFullSec(cache,ipage,key,less,greater);
+
+
+***************
+*** 10258,10264 ****
+ btreeWriteNode(cache,spage,kSarray,pSarray,skeys);
+ btreeWriteNode(cache,tpage,kTarray,pTarray,tkeys);
+ btreeWriteNode(cache,ppage,kParray,pParray,pkeys);
+! if(!ppage->pageno)
+ ppage->dirty = BT_LOCK;
+
+ i = 0;
+--- 10273,10279 ----
+ btreeWriteNode(cache,spage,kSarray,pSarray,skeys);
+ btreeWriteNode(cache,tpage,kTarray,pTarray,tkeys);
+ btreeWriteNode(cache,ppage,kParray,pParray,pkeys);
+! if(ppage->pageno == cache->secrootblock)
+ ppage->dirty = BT_LOCK;
+
+ i = 0;
+***************
+*** 10355,10361 ****
+ btreeWriteNode(cache,spage,kSarray,pSarray,skeys);
+ btreeWriteNode(cache,tpage,kTarray,pTarray,tkeys);
+ btreeWriteNode(cache,ppage,kParray,pParray,pkeys);
+! if(!ppage->pageno)
+ ppage->dirty = BT_LOCK;
+
+ i = 0;
+--- 10370,10376 ----
+ btreeWriteNode(cache,spage,kSarray,pSarray,skeys);
+ btreeWriteNode(cache,tpage,kTarray,pTarray,tkeys);
+ btreeWriteNode(cache,ppage,kParray,pParray,pkeys);
+! if(ppage->pageno == cache->secrootblock)
+ ppage->dirty = BT_LOCK;
+
+ i = 0;
+***************
+*** 10668,10674 ****
+ btreeWriteNode(cache,spage,kSarray,pSarray,skeys);
+ btreeWriteNode(cache,tpage,kTarray,pTarray,tkeys);
+ btreeWriteNode(cache,ppage,kParray,pParray,pkeys);
+! if(!ppage->pageno)
+ ppage->dirty = BT_LOCK;
+
+ page = ajBtreeCacheRead(cache,pSarray[skeys]);
+--- 10683,10689 ----
+ btreeWriteNode(cache,spage,kSarray,pSarray,skeys);
+ btreeWriteNode(cache,tpage,kTarray,pTarray,tkeys);
+ btreeWriteNode(cache,ppage,kParray,pParray,pkeys);
+! if(ppage->pageno == cache->secrootblock)
+ ppage->dirty = BT_LOCK;
+
+ page = ajBtreeCacheRead(cache,pSarray[skeys]);
+***************
+*** 10726,10732 ****
+ btreeWriteNode(cache,spage,kSarray,pSarray,skeys);
+ btreeWriteNode(cache,tpage,kTarray,pTarray,tkeys);
+ btreeWriteNode(cache,ppage,kParray,pParray,pkeys);
+! if(!ppage->pageno)
+ ppage->dirty = BT_LOCK;
+
+ page = ajBtreeCacheRead(cache,pSarray[0]);
+--- 10741,10747 ----
+ btreeWriteNode(cache,spage,kSarray,pSarray,skeys);
+ btreeWriteNode(cache,tpage,kTarray,pTarray,tkeys);
+ btreeWriteNode(cache,ppage,kParray,pParray,pkeys);
+! if(ppage->pageno == cache->secrootblock)
+ ppage->dirty = BT_LOCK;
+
+ page = ajBtreeCacheRead(cache,pSarray[0]);
+***************
+*** 11956,11963 ****
+
+ static ajint btreeOffsetCompare(const void *a, const void *b)
+ {
+! return (*(AjPBtId const *)a)->offset -
+! (*(AjPBtId const *)b)->offset;
+ }
+
+
+--- 11971,11984 ----
+
+ static ajint btreeOffsetCompare(const void *a, const void *b)
+ {
+! ajlong val;
+!
+! val = (*(AjPBtId const *)a)->offset - (*(AjPBtId const *)b)->offset;
+!
+! if(!val)
+! return 0;
+!
+! return (val < 0L) ? -1 : 1;
+ }
+
+
+***************
+*** 13386,13391 ****
+--- 13407,13414 ----
+ ajlong blockno = 0L;
+ ajlong rblockno = 0L;
+ ajlong lblockno = 0L;
++ ajlong ibn = 0L;
++
+ AjPStr mediankey = NULL;
+ ajlong medianless = 0L;
+ ajlong mediangtr = 0L;
+***************
+*** 13534,13546 ****
+ }
+
+
+! ipage = rpage;
+ if(strcmp(key->Ptr,mediankey->Ptr)<0)
+! ipage = lpage;
+
+ lpage->dirty = BT_DIRTY;
+ rpage->dirty = BT_DIRTY;
+
+ btreeInsertNonFull(cache,ipage,key,less,greater);
+
+
+--- 13557,13571 ----
+ }
+
+
+! ibn = rblockno;
+ if(strcmp(key->Ptr,mediankey->Ptr)<0)
+! ibn = lblockno;
+
+ lpage->dirty = BT_DIRTY;
+ rpage->dirty = BT_DIRTY;
+
++ ipage = ajBtreeCacheRead(cache,ibn);
++
+ btreeInsertNonFull(cache,ipage,key,less,greater);
+
+
+***************
+*** 15020,15025 ****
+--- 15045,15052 ----
+ ajlong blockno = 0L;
+ ajlong rblockno = 0L;
+ ajlong lblockno = 0L;
++ ajlong ibn = 0L;
++
+ ajlong mediankey = 0L;
+ ajlong medianless = 0L;
+ ajlong mediangtr = 0L;
+***************
+*** 15162,15173 ****
+ }
+
+
+! ipage = rpage;
+ if(key < mediankey)
+! ipage = lpage;
+
+ lpage->dirty = BT_DIRTY;
+ rpage->dirty = BT_DIRTY;
+
+ btreeNumInsertNonFull(cache,ipage,key,less,greater);
+
+--- 15189,15202 ----
+ }
+
+
+! ibn = rblockno;
+ if(key < mediankey)
+! ibn = lblockno;
+
+ lpage->dirty = BT_DIRTY;
+ rpage->dirty = BT_DIRTY;
++
++ ipage = ajBtreeCacheRead(cache,ibn);
+
+ btreeNumInsertNonFull(cache,ipage,key,less,greater);
+
+***************
+*** 15502,15508 ****
+ btreeWriteNumNode(cache,spage,kSarray,pSarray,skeys);
+ btreeWriteNumNode(cache,tpage,kTarray,pTarray,tkeys);
+ btreeWriteNumNode(cache,ppage,kParray,pParray,pkeys);
+! if(!ppage->pageno)
+ ppage->dirty = BT_LOCK;
+
+ page = ajBtreeCacheRead(cache,pSarray[skeys]);
+--- 15531,15537 ----
+ btreeWriteNumNode(cache,spage,kSarray,pSarray,skeys);
+ btreeWriteNumNode(cache,tpage,kTarray,pTarray,tkeys);
+ btreeWriteNumNode(cache,ppage,kParray,pParray,pkeys);
+! if(ppage->pageno == cache->secrootblock)
+ ppage->dirty = BT_LOCK;
+
+ page = ajBtreeCacheRead(cache,pSarray[skeys]);
+***************
+*** 15551,15557 ****
+ btreeWriteNumNode(cache,spage,kSarray,pSarray,skeys);
+ btreeWriteNumNode(cache,tpage,kTarray,pTarray,tkeys);
+ btreeWriteNumNode(cache,ppage,kParray,pParray,pkeys);
+! if(!ppage->pageno)
+ ppage->dirty = BT_LOCK;
+
+ page = ajBtreeCacheRead(cache,pSarray[0]);
+--- 15580,15586 ----
+ btreeWriteNumNode(cache,spage,kSarray,pSarray,skeys);
+ btreeWriteNumNode(cache,tpage,kTarray,pTarray,tkeys);
+ btreeWriteNumNode(cache,ppage,kParray,pParray,pkeys);
+! if(ppage->pageno == cache->secrootblock)
+ ppage->dirty = BT_LOCK;
+
+ page = ajBtreeCacheRead(cache,pSarray[0]);
+***************
+*** 15727,15733 ****
+ btreeWriteNumNode(cache,spage,kSarray,pSarray,skeys);
+ btreeWriteNumNode(cache,tpage,kTarray,pTarray,tkeys);
+ btreeWriteNumNode(cache,ppage,kParray,pParray,pkeys);
+! if(!ppage->pageno)
+ ppage->dirty = BT_LOCK;
+
+ i = 0;
+--- 15756,15762 ----
+ btreeWriteNumNode(cache,spage,kSarray,pSarray,skeys);
+ btreeWriteNumNode(cache,tpage,kTarray,pTarray,tkeys);
+ btreeWriteNumNode(cache,ppage,kParray,pParray,pkeys);
+! if(ppage->pageno == cache->secrootblock)
+ ppage->dirty = BT_LOCK;
+
+ i = 0;
+***************
+*** 15817,15823 ****
+ btreeWriteNumNode(cache,spage,kSarray,pSarray,skeys);
+ btreeWriteNumNode(cache,tpage,kTarray,pTarray,tkeys);
+ btreeWriteNumNode(cache,ppage,kParray,pParray,pkeys);
+! if(!ppage->pageno)
+ ppage->dirty = BT_LOCK;
+
+ i = 0;
+--- 15846,15852 ----
+ btreeWriteNumNode(cache,spage,kSarray,pSarray,skeys);
+ btreeWriteNumNode(cache,tpage,kTarray,pTarray,tkeys);
+ btreeWriteNumNode(cache,ppage,kParray,pParray,pkeys);
+! if(ppage->pageno == cache->secrootblock)
+ ppage->dirty = BT_LOCK;
+
+ i = 0;
+diff -c -N --recursive EMBOSS-5.0.0old/ajax/ajindex.h EMBOSS-5.0.0/ajax/ajindex.h
+*** EMBOSS-5.0.0old/ajax/ajindex.h 2007-07-11 17:07:25.000000000 +0100
+--- EMBOSS-5.0.0/ajax/ajindex.h 2008-03-06 10:15:22.000000000 +0000
+***************
+*** 38,43 ****
+--- 38,103 ----
+ #define TX_EXTENSION "xtx"
+
+
++ /* Useful page filling values */
++
++ /*
++ * Length of integers after the ID string in a primary bucket
++ * i.e. dbno + dups + offset + refoffset
++ */
++ #define BT_DDOFFROFF (sizeof(ajint) + sizeof(ajint) + sizeof(ajlong) + \
++ sizeof(ajlong))
++
++ /*
++ * Preamble before key lengths in an internal node
++ * i.e. nodetype+blocknumber+nkeys+totlen+left+right+overflow+prev
++ */
++ #define BT_NODEPREAMBLE (sizeof(ajint) + sizeof(ajlong) + sizeof(ajint) + \
++ sizeof(ajint) + sizeof(ajlong) + sizeof(ajlong) + sizeof(ajlong) + \
++ sizeof(ajlong))
++
++ /*
++ * This is the length of extra pointer required in primary index
++ * page space calculations i.e. the total space taken by
++ * key/pointer pairs in an internal page is:
++ * BT_PTRLEN + ((keylenmax + sizeof(long))*nkeys)
++ * This is because there is one more pointer than the
++ * value of 'order' in a B+ tree.
++ */
++ #define BT_PTRLEN sizeof(ajlong)
++
++
++ /*
++ * Length of extra space, on top of a key string, taken up by a
++ * key in an internal node. This is an ajint holding the length
++ * of a string plus the length of a block pointer (ajlong)
++ */
++ #define BT_IDKEYEXTRA (sizeof(ajint) + sizeof(ajlong))
++
++
++ /*
++ * Preamble before key lengths in an id bucket
++ * i.e. nodetype+nentries+overflow
++ */
++ #define BT_BUCKPREAMBLE (sizeof(ajint) + sizeof(ajint) + sizeof(ajlong))
++
++
++ /*
++ * Size of a key in a key length table block in an internal node or bucket
++ */
++ #define BT_KEYLENENTRY sizeof(ajint)
++
++ /*
++ * Size of an offset key
++ */
++ #define BT_OFFKEYLEN sizeof(ajlong)
++
++ /*
++ * Length of integers per entry in a num bucket
++ * i.e. dbno + offset + refoffset
++ */
++ #define BT_DOFFROFF (sizeof(ajint) + sizeof(ajlong) + sizeof(ajlong))
++
++
+
+
+ /* @data AjPBtNode ***********************************************************
+diff -c -N --recursive EMBOSS-5.0.0old/ajax/ajseqdb.c EMBOSS-5.0.0/ajax/ajseqdb.c
+*** EMBOSS-5.0.0old/ajax/ajseqdb.c 2007-07-06 13:22:40.000000000 +0100
+--- EMBOSS-5.0.0/ajax/ajseqdb.c 2008-03-06 10:14:40.000000000 +0000
+***************
+*** 4314,4320 ****
+
+ if(!seqRegGcgId)
+ {
+! seqRegGcgId =ajRegCompC("^>...([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([0-9]+)");
+ seqRegGcgId2=ajRegCompC("^>[PF]1;([^ ]+)");
+ }
+
+--- 4314,4320 ----
+
+ if(!seqRegGcgId)
+ {
+! seqRegGcgId =ajRegCompC("^>...([^ ]+) +(Dummy Header|[^ ]+) +([^ ]+) +([^ ]+) +([0-9]+)");
+ seqRegGcgId2=ajRegCompC("^>[PF]1;([^ ]+)");
+ }
+
+***************
+*** 4352,4358 ****
+ else if(ajRegExec(seqRegGcgId2, line))
+ {
+ ajStrAssignC(&gcgtype, "ASCII");
+! ajRegSubI(seqRegGcgId, 1, &tmpstr);
+ ispir = ajTrue;
+ }
+ else
+--- 4352,4358 ----
+ else if(ajRegExec(seqRegGcgId2, line))
+ {
+ ajStrAssignC(&gcgtype, "ASCII");
+! ajRegSubI(seqRegGcgId2, 1, &tmpstr);
+ ispir = ajTrue;
+ }
+ else
+***************
+*** 5546,5552 ****
+
+ if(!seqRegGcgId)
+ {
+! seqRegGcgId =ajRegCompC("^>...([^ ]+) +([^ ]+) +([^ ]+) +([^ ]+) +([0-9]+)");
+ seqRegGcgId2=ajRegCompC("^>[PF]1;([^ ]+)");
+ }
+
+--- 5546,5552 ----
+
+ if(!seqRegGcgId)
+ {
+! seqRegGcgId =ajRegCompC("^>...([^ ]+) +(Dummy Header|[^ ]+) +([^ ]+) +([^ ]+) +([0-9]+)");
+ seqRegGcgId2=ajRegCompC("^>[PF]1;([^ ]+)");
+ }
+
+***************
+*** 5584,5590 ****
+ else if(ajRegExec(seqRegGcgId2, line))
+ {
+ ajStrAssignC(&gcgtype, "ASCII");
+! ajRegSubI(seqRegGcgId, 1, &tmpstr);
+ ispir = ajTrue;
+ }
+ else
+--- 5584,5590 ----
+ else if(ajRegExec(seqRegGcgId2, line))
+ {
+ ajStrAssignC(&gcgtype, "ASCII");
+! ajRegSubI(seqRegGcgId2, 1, &tmpstr);
+ ispir = ajTrue;
+ }
+ else
+diff -c -N --recursive EMBOSS-5.0.0old/ajax/ajseqread.c EMBOSS-5.0.0/ajax/ajseqread.c
+*** EMBOSS-5.0.0old/ajax/ajseqread.c 2007-07-11 13:09:51.000000000 +0100
+--- EMBOSS-5.0.0/ajax/ajseqread.c 2008-03-06 10:14:41.000000000 +0000
+***************
+*** 604,610 ****
+ /* Feature Gap, ReadFunction, Multiset, Padding */
+ {"unknown", "Unknown format",
+ AJFALSE, AJFALSE, AJTRUE, AJTRUE,
+! AJTRUE, AJTRUE, seqReadText, AJTRUE, 0}, /* alias for text */
+ {"gcg", "GCG sequence format",
+ AJFALSE, AJTRUE, AJTRUE, AJTRUE,
+ AJFALSE, AJTRUE, seqReadGcg, AJFALSE, 0}, /* do first, headers mislead */
+--- 604,610 ----
+ /* Feature Gap, ReadFunction, Multiset, Padding */
+ {"unknown", "Unknown format",
+ AJFALSE, AJFALSE, AJTRUE, AJTRUE,
+! AJTRUE, AJTRUE, seqReadText, AJFALSE, 0}, /* alias for text */
+ {"gcg", "GCG sequence format",
+ AJFALSE, AJTRUE, AJTRUE, AJTRUE,
+ AJFALSE, AJTRUE, seqReadGcg, AJFALSE, 0}, /* do first, headers mislead */
+***************
+*** 6637,6642 ****
+--- 6637,6643 ----
+ else /* test for a SwissProt/SpTrEMBL entry */
+ {
+ if(ajStrFindC(seqReadLine, " PRT; ")>= 0 ||
++ ajStrFindC(seqReadLine, " Unreviewed; ") >= 0 ||
+ ajStrFindC(seqReadLine, " Reviewed; ") >= 0 ||
+ ajStrFindC(seqReadLine, " Preliminary; ") >= 0
+ )
+***************
+*** 6650,6656 ****
+
+ ok = ajFileBuffGetStore(buff, &seqReadLine, seqin->Text, &thys->TextPtr);
+
+! while(ok && !ajStrPrefixC(seqReadLine, "SQ "))
+ {
+ bufflines++;
+
+--- 6651,6657 ----
+
+ ok = ajFileBuffGetStore(buff, &seqReadLine, seqin->Text, &thys->TextPtr);
+
+! while(ok && !ajStrPrefixC(seqReadLine, "SQ"))
+ {
+ bufflines++;
+
+***************
+*** 7028,7033 ****
+--- 7029,7045 ----
+ }
+ }
+
++ if(!ajSeqIsNuc(thys))
++ {
++ ajFileBuffReset(buff);
++ ajStrDel(&tmpstr);
++ ajStrDel(&token);
++ ajStrDel(&datestr);
++ ajStrDel(&relstr);
++ ajStrTokenDel(&handle);
++ return ajFalse;
++ }
++
+ ajSeqSetNuc(thys);
+
+ ajFileBuffClear(buff, 0);
+***************
+*** 7830,7837 ****
+
+ if(ajStrMatchC(typstr, "Protein"))
+ ajSeqSetProt(thys);
+! else
+ ajSeqSetNuc(thys);
+
+ ajFileBuffClear(buff, 0);
+
+--- 7842,7851 ----
+
+ if(ajStrMatchC(typstr, "Protein"))
+ ajSeqSetProt(thys);
+! else if(ajSeqIsNuc(thys))
+ ajSeqSetNuc(thys);
++ else
++ ajSeqSetProt(thys);
+
+ ajFileBuffClear(buff, 0);
+
+diff -c -N --recursive EMBOSS-5.0.0old/ajax/ajseqtype.c EMBOSS-5.0.0/ajax/ajseqtype.c
+*** EMBOSS-5.0.0old/ajax/ajseqtype.c 2007-02-09 18:30:59.000000000 +0000
+--- EMBOSS-5.0.0/ajax/ajseqtype.c 2008-03-06 10:14:41.000000000 +0000
+***************
+*** 160,166 ****
+ ** - Phylip and some alignment output
+ ** ~ GCG for gaps at ends
+ ** * Staden for DNA but stop for protein (fix on input?)
+! ** O Phylip (fix on input?)
+ */
+
+
+--- 160,166 ----
+ ** - Phylip and some alignment output
+ ** ~ GCG for gaps at ends
+ ** * Staden for DNA but stop for protein (fix on input?)
+! ** O Phylip (fix on input?) - no longer possible: O is pyrrolysine in proteins
+ */
+
+
+***************
+*** 174,187 ****
+ char seqCharNuc[] = "ACGTUBDHKMNRSVWXY?";
+ char seqCharNucPure[] = "ACGTU";
+ char seqCharNucAmbig[] = "BDHKMNRSVWXY?";
+! char seqCharGap[] = ".~O-"; /* phylip uses O */
+ char seqCharNucDna[] = "ACGTBDHKMNRSVWXY?";
+ char seqCharNucRna[] = "ACGUBDHKMNRSVWXY?";
+! char seqCharGapany[] = ".~O-"; /* phylip uses O */
+ char seqCharGapdash[] = "-";
+ char seqCharGapdot[] = ".";
+ char seqGap = '-'; /* the (only) EMBOSS gap character */
+! char seqCharGapTest[] = " .~O-"; /* phylip uses O - don't forget space */
+ char seqCharPhylo[] = "?"; /* phylip uses ? for unknown or gap */
+
+
+--- 174,187 ----
+ char seqCharNuc[] = "ACGTUBDHKMNRSVWXY?";
+ char seqCharNucPure[] = "ACGTU";
+ char seqCharNucAmbig[] = "BDHKMNRSVWXY?";
+! char seqCharGap[] = ".~-"; /* phylip uses O */
+ char seqCharNucDna[] = "ACGTBDHKMNRSVWXY?";
+ char seqCharNucRna[] = "ACGUBDHKMNRSVWXY?";
+! char seqCharGapany[] = ".~-"; /* phylip uses O */
+ char seqCharGapdash[] = "-";
+ char seqCharGapdot[] = ".";
+ char seqGap = '-'; /* the (only) EMBOSS gap character */
+! char seqCharGapTest[] = " .~-"; /* phylip uses O - don't forget space */
+ char seqCharPhylo[] = "?"; /* phylip uses ? for unknown or gap */
+
+
+diff -c -N --recursive EMBOSS-5.0.0old/ajax/ajseqwrite.c EMBOSS-5.0.0/ajax/ajseqwrite.c
+*** EMBOSS-5.0.0old/ajax/ajseqwrite.c 2007-07-06 13:10:46.000000000 +0100
+--- EMBOSS-5.0.0/ajax/ajseqwrite.c 2008-03-06 10:14:42.000000000 +0000
+***************
+*** 2788,2805 ****
+ {
+ if(ilen + ajStrGetLen(cur) > 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "AC ", cur);
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ", cur);
+ ilen += 2;
+ }
+
+--- 2788,2805 ----
+ {
+ if(ilen + ajStrGetLen(cur) > 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n");
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "AC ");
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ");
+ ilen += 2;
+ }
+
+***************
+*** 2808,2814 ****
+
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ }
+
+ if(ajStrGetLen(outseq->Sv))
+--- 2808,2814 ----
+
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ";\n");
+ }
+
+ if(ajStrGetLen(outseq->Sv))
+***************
+*** 2827,2851 ****
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "KW ", cur);
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ", cur);
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+ ilen += ajStrGetLen(cur);
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n", cur);
+ }
+
+ if(ajStrGetLen(outseq->Tax))
+--- 2827,2851 ----
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n");
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "KW ");
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ");
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+ ilen += ajStrGetLen(cur);
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n");
+ }
+
+ if(ajStrGetLen(outseq->Tax))
+***************
+*** 2859,2883 ****
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "OC ", cur);
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ", cur);
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+ ilen += ajStrGetLen(cur);
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n", cur);
+ }
+
+ if(seqoutUfoLocal(outseq))
+--- 2859,2883 ----
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n");
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "OC ");
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ");
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+ ilen += ajStrGetLen(cur);
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n");
+ }
+
+ if(seqoutUfoLocal(outseq))
+***************
+*** 2973,2990 ****
+ {
+ if(ilen + ajStrGetLen(cur) > 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "AC ", cur);
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ", cur);
+ ilen += 2;
+ }
+
+--- 2973,2990 ----
+ {
+ if(ilen + ajStrGetLen(cur) > 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n");
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "AC ");
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ");
+ ilen += 2;
+ }
+
+***************
+*** 2993,2999 ****
+
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ }
+
+ if(ajStrGetLen(outseq->Sv))
+--- 2993,2999 ----
+
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ";\n");
+ }
+
+ if(ajStrGetLen(outseq->Sv))
+***************
+*** 3021,3045 ****
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "KW ", cur);
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ", cur);
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+ ilen += ajStrGetLen(cur);
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n", cur);
+ }
+
+ if(ajStrGetLen(outseq->Tax))
+--- 3021,3045 ----
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n");
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "KW ");
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ");
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+ ilen += ajStrGetLen(cur);
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n");
+ }
+
+ if(ajStrGetLen(outseq->Tax))
+***************
+*** 3053,3077 ****
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "OC ", cur);
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ", cur);
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+ ilen += ajStrGetLen(cur);
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n", cur);
+ }
+
+ if(seqoutUfoLocal(outseq))
+--- 3053,3077 ----
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n");
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "OC ");
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ");
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+ ilen += ajStrGetLen(cur);
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n");
+ }
+
+ if(seqoutUfoLocal(outseq))
+***************
+*** 3209,3215 ****
+
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ";\nXX\n", cur);
+ }
+
+ /* no SV line in the new format - see the ID line */
+--- 3209,3215 ----
+
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ";\nXX\n");
+ }
+
+ /* no SV line in the new format - see the ID line */
+***************
+*** 3237,3243 ****
+ "DT %D (Rel. %S, Last updated, Version %S)\n",
+ outseq->Date->ModDate, outseq->Date->ModRel,
+ outseq->Date->ModVer);
+! ajFmtPrintF(outseq->File, "XX\n", cur);
+ }
+
+ if(ajStrGetLen(outseq->Desc))
+--- 3237,3243 ----
+ "DT %D (Rel. %S, Last updated, Version %S)\n",
+ outseq->Date->ModDate, outseq->Date->ModRel,
+ outseq->Date->ModVer);
+! ajFmtPrintF(outseq->File, "XX\n");
+ }
+
+ if(ajStrGetLen(outseq->Desc))
+***************
+*** 3250,3256 ****
+ ajFmtPrintF(outseq->File, "DE %S\n", tmpline);
+ tmpline = ajStrParseC(NULL, "\n");
+ }
+! ajFmtPrintF(outseq->File, "XX\n", cur);
+ }
+
+ if(ajListGetLength(outseq->Keylist))
+--- 3250,3256 ----
+ ajFmtPrintF(outseq->File, "DE %S\n", tmpline);
+ tmpline = ajStrParseC(NULL, "\n");
+ }
+! ajFmtPrintF(outseq->File, "XX\n");
+ }
+
+ if(ajListGetLength(outseq->Keylist))
+***************
+*** 3261,3285 ****
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "KW ", cur);
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ", cur);
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+ ilen += ajStrGetLen(cur);
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\nXX\n", cur);
+ }
+
+ if(ajStrGetLen(outseq->Tax))
+--- 3261,3285 ----
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n");
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "KW ");
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ");
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+ ilen += ajStrGetLen(cur);
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\nXX\n");
+ }
+
+ if(ajStrGetLen(outseq->Tax))
+***************
+*** 3293,3317 ****
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "OC ", cur);
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ", cur);
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+ ilen += ajStrGetLen(cur);
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n", cur);
+ }
+ if(ajStrGetLen(outseq->Organelle))
+ ajFmtPrintF(outseq->File, "OG %S\n", outseq->Organelle);
+--- 3293,3317 ----
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n");
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "OC ");
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ");
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+ ilen += ajStrGetLen(cur);
+ }
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n");
+ }
+ if(ajStrGetLen(outseq->Organelle))
+ ajFmtPrintF(outseq->File, "OG %S\n", outseq->Organelle);
+***************
+*** 3319,3325 ****
+ if(ajStrGetLen(outseq->Tax) ||
+ ajStrGetLen(outseq->Organelle) ||
+ ajListGetLength(outseq->Taxlist) > 1)
+! ajFmtPrintF(outseq->File, "XX\n", cur);
+
+ if(ajListGetLength(outseq->Reflist))
+ {
+--- 3319,3325 ----
+ if(ajStrGetLen(outseq->Tax) ||
+ ajStrGetLen(outseq->Organelle) ||
+ ajListGetLength(outseq->Taxlist) > 1)
+! ajFmtPrintF(outseq->File, "XX\n");
+
+ if(ajListGetLength(outseq->Reflist))
+ {
+***************
+*** 3438,3444 ****
+ }
+ }
+ ajListIterDel(&it);
+! ajFmtPrintF(outseq->File, "XX\n", cur);
+ }
+
+ if(ajListGetLength(outseq->Cmtlist))
+--- 3438,3444 ----
+ }
+ }
+ ajListIterDel(&it);
+! ajFmtPrintF(outseq->File, "XX\n");
+ }
+
+ if(ajListGetLength(outseq->Cmtlist))
+***************
+*** 3457,3463 ****
+ ajFmtPrintF(outseq->File, "CC %S\n", tmpline);
+ tmpline = ajStrParseC(NULL, "\n");
+ }
+! ajFmtPrintF(outseq->File, "XX\n", cur);
+ }
+ ajListIterDel(&it);
+ }
+--- 3457,3463 ----
+ ajFmtPrintF(outseq->File, "CC %S\n", tmpline);
+ tmpline = ajStrParseC(NULL, "\n");
+ }
+! ajFmtPrintF(outseq->File, "XX\n");
+ }
+ ajListIterDel(&it);
+ }
+***************
+*** 3471,3477 ****
+ if(!ajFeatWrite(outseq->Ftquery, outseq->Fttable))
+ ajWarn("seqWriteEmbl features output failed UFO: '%S'",
+ outseq->Ufo);
+! ajFmtPrintF(outseq->File, "XX\n", cur);
+ }
+
+ ajSeqoutGetBasecount(outseq, b);
+--- 3471,3477 ----
+ if(!ajFeatWrite(outseq->Ftquery, outseq->Fttable))
+ ajWarn("seqWriteEmbl features output failed UFO: '%S'",
+ outseq->Ufo);
+! ajFmtPrintF(outseq->File, "XX\n");
+ }
+
+ ajSeqoutGetBasecount(outseq, b);
+***************
+*** 3541,3558 ****
+ {
+ if(ilen + ajStrGetLen(cur) > 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "AC ", cur);
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ", cur);
+ ilen += 2;
+ }
+
+--- 3541,3558 ----
+ {
+ if(ilen + ajStrGetLen(cur) > 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n");
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "AC ");
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ");
+ ilen += 2;
+ }
+
+***************
+*** 3562,3568 ****
+ }
+
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ }
+
+ if(ajStrGetLen(outseq->Desc))
+--- 3562,3568 ----
+ }
+
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ";\n");
+ }
+
+ if(ajStrGetLen(outseq->Desc))
+***************
+*** 3579,3596 ****
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "OC ", cur);
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ", cur);
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+--- 3579,3596 ----
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n");
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "OC ");
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ");
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+***************
+*** 3598,3604 ****
+ }
+
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n", cur);
+ }
+
+ if(ajListGetLength(outseq->Keylist))
+--- 3598,3604 ----
+ }
+
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n");
+ }
+
+ if(ajListGetLength(outseq->Keylist))
+***************
+*** 3609,3626 ****
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "KW ", cur);
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ", cur);
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+--- 3609,3626 ----
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n");
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "KW ");
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ");
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+***************
+*** 3628,3634 ****
+ }
+
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n", cur);
+ }
+
+ if(seqoutUfoLocal(outseq))
+--- 3628,3634 ----
+ }
+
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n");
+ }
+
+ if(seqoutUfoLocal(outseq))
+***************
+*** 3708,3725 ****
+ {
+ if(ilen + ajStrGetLen(cur) > 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "AC ", cur);
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ", cur);
+ ilen += 2;
+ }
+
+--- 3708,3725 ----
+ {
+ if(ilen + ajStrGetLen(cur) > 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n");
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "AC ");
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ");
+ ilen += 2;
+ }
+
+***************
+*** 3729,3735 ****
+ }
+
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ }
+
+ if(ajStrGetLen(outseq->Desc))
+--- 3729,3735 ----
+ }
+
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ";\n");
+ }
+
+ if(ajStrGetLen(outseq->Desc))
+***************
+*** 3746,3763 ****
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "OC ", cur);
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ", cur);
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+--- 3746,3763 ----
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n");
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "OC ");
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ");
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+***************
+*** 3765,3771 ****
+ }
+
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n", cur);
+ }
+
+ if(ajListGetLength(outseq->Keylist))
+--- 3765,3771 ----
+ }
+
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n");
+ }
+
+ if(ajListGetLength(outseq->Keylist))
+***************
+*** 3776,3793 ****
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "KW ", cur);
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ", cur);
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+--- 3776,3793 ----
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n");
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "KW ");
+ ilen = 6;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ");
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+***************
+*** 3795,3801 ****
+ }
+
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n", cur);
+ }
+
+ if(seqoutUfoLocal(outseq))
+--- 3795,3801 ----
+ }
+
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n");
+ }
+
+ if(seqoutUfoLocal(outseq))
+***************
+*** 3918,3940 ****
+ it = ajListIterNewread(outseq->Acclist);
+ while((cur = (AjPStr) ajListIterGet(it)))
+ {
+- if(ilen + ajStrGetLen(cur) > 79)
+- {
+- ajFmtPrintF(outseq->File, "\n", cur);
+- ilen = 0;
+- }
+-
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "ACCESSION ", cur);
+! ilen = 12;
+ }
+! else
+ {
+! ajFmtPrintF(outseq->File, " ", cur);
+! ilen += 1;
+ }
+
+ ajFmtPrintF(outseq->File, "%S", cur);
+ ilen += ajStrGetLen(cur);
+
+--- 3918,3937 ----
+ it = ajListIterNewread(outseq->Acclist);
+ while((cur = (AjPStr) ajListIterGet(it)))
+ {
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "ACCESSION ");
+! ilen = 11;
+ }
+! if(ilen + ajStrGetLen(cur) > 79)
+ {
+! ajFmtPrintF(outseq->File, "\n ");
+! ilen = 11;
+ }
+
++ ajFmtPrintF(outseq->File, " ");
++ ilen += 1;
++
+ ajFmtPrintF(outseq->File, "%S", cur);
+ ilen += ajStrGetLen(cur);
+
+***************
+*** 3942,3948 ****
+
+ ajListIterDel(&it) ;
+ if(ilen > 0)
+! ajFmtPrintF(outseq->File, "\n", cur);
+ }
+
+ if(ajStrGetLen(outseq->Sv))
+--- 3939,3945 ----
+
+ ajListIterDel(&it) ;
+ if(ilen > 0)
+! ajFmtPrintF(outseq->File, "\n");
+ }
+
+ if(ajStrGetLen(outseq->Sv))
+***************
+*** 3960,3987 ****
+ it = ajListIterNewread(outseq->Keylist);
+ while((cur = (AjPStr) ajListIterGet(it)))
+ {
+- if(ilen+ajStrGetLen(cur) >= 79)
+- {
+- ajFmtPrintF(outseq->File, ";\n", cur);
+- ilen = 0;
+- }
+-
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "KEYWORDS ", cur);
+! ilen = 12;
+ }
+! else
+ {
+! ajFmtPrintF(outseq->File, "; ", cur);
+! ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+ ilen += ajStrGetLen(cur);
+ }
+
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n", cur);
+ }
+
+ if(ajStrGetLen(outseq->Tax))
+--- 3957,3982 ----
+ it = ajListIterNewread(outseq->Keylist);
+ while((cur = (AjPStr) ajListIterGet(it)))
+ {
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, "KEYWORDS ");
+! ilen = 11;
+ }
+! if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n ");
+! ilen = 11;
+ }
++
++ ajFmtPrintF(outseq->File, "; ");
++ ilen += 2;
++
+ ajFmtPrintF(outseq->File, "%S", cur);
+ ilen += ajStrGetLen(cur);
+ }
+
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n");
+ }
+
+ if(ajStrGetLen(outseq->Tax))
+***************
+*** 3997,4014 ****
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n", cur);
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, " ", cur);
+ ilen = 12;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ", cur);
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+--- 3992,4009 ----
+ {
+ if(ilen+ajStrGetLen(cur) >= 79)
+ {
+! ajFmtPrintF(outseq->File, ";\n");
+ ilen = 0;
+ }
+
+ if(ilen == 0)
+ {
+! ajFmtPrintF(outseq->File, " ");
+ ilen = 12;
+ }
+ else
+ {
+! ajFmtPrintF(outseq->File, "; ");
+ ilen += 2;
+ }
+ ajFmtPrintF(outseq->File, "%S", cur);
+***************
+*** 4016,4022 ****
+ }
+
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n", cur);
+ }
+ }
+
+--- 4011,4017 ----
+ }
+
+ ajListIterDel(&it) ;
+! ajFmtPrintF(outseq->File, ".\n");
+ }
+ }
+
+diff -c -N --recursive EMBOSS-5.0.0old/emboss/dbxfasta.c EMBOSS-5.0.0/emboss/dbxfasta.c
+*** EMBOSS-5.0.0old/emboss/dbxfasta.c 2007-07-06 13:15:29.000000000 +0100
+--- EMBOSS-5.0.0/emboss/dbxfasta.c 2008-03-06 10:14:54.000000000 +0000
+***************
+*** 34,39 ****
+--- 34,41 ----
+
+ static AjPRegexp dbxfasta_wrdexp = NULL;
+
++ static ajuint maxidlen = 0;
++ static ajuint idtrunc = 0;
+
+ static AjBool dbxfasta_NextEntry(EmbPBtreeEntry entry, AjPFile inf,
+ AjPRegexp typeexp, ajint idtype);
+***************
+*** 187,193 ****
+ embBtreeDumpParameters(entry);
+ embBtreeCloseCaches(entry);
+
+!
+ embBtreeEntryDel(&entry);
+ ajStrDel(&tmpstr);
+ ajStrDel(&filename);
+--- 189,197 ----
+ embBtreeDumpParameters(entry);
+ embBtreeCloseCaches(entry);
+
+! if(maxidlen)
+! ajUser("Resource idlen truncated %u IDs. Maximum ID length was %u.",
+! idtrunc, maxidlen);
+ embBtreeEntryDel(&entry);
+ ajStrDel(&tmpstr);
+ ajStrDel(&filename);
+***************
+*** 431,442 ****
+ return ajFalse;
+ }
+
+ ajStrFmtLower(&entry->id);
+
+ if(entry->do_accession && ajStrGetLen(ac))
+ {
+ str = ajStrNew();
+! ajStrAssignS(&str,ac);
+ ajListPush(entry->ac,(void *)str);
+ }
+
+--- 435,461 ----
+ return ajFalse;
+ }
+
++ if(ajStrGetLen(entry->id) > entry->idlen)
++ {
++ if(ajStrGetLen(entry->id) > maxidlen)
++ {
++ ajWarn("id '%S' too long, truncating to idlen %d",
++ entry->id, entry->idlen);
++ maxidlen = ajStrGetLen(entry->id);
++ }
++ idtrunc++;
++ ajStrKeepRange(&entry->id,0,entry->idlen-1);
++ }
++
+ ajStrFmtLower(&entry->id);
+
+ if(entry->do_accession && ajStrGetLen(ac))
+ {
+ str = ajStrNew();
+! if(ajStrGetLen(ac) > entry->aclen)
+! ajStrAssignSubS(&str,ac,0,entry->aclen-1);
+! else
+! ajStrAssignS(&str,ac);
+ ajListPush(entry->ac,(void *)str);
+ }
+
+***************
+*** 444,456 ****
+ ajStrAssignS(&sv,gi);
+
+ if(entry->do_sv && ajStrGetLen(sv))
+ {
+ str = ajStrNew();
+ ajStrAssignS(&str,sv);
+ ajListPush(entry->ac,(void *)str);
+ }
+!
+ if(entry->do_description && ajStrGetLen(de))
+ while(ajRegExec(dbxfasta_wrdexp,de))
+ {
+ ajRegSubI(dbxfasta_wrdexp, 1, &tmpfd);
+--- 463,479 ----
+ ajStrAssignS(&sv,gi);
+
+ if(entry->do_sv && ajStrGetLen(sv))
++ embBtreeFastaDE(sv, entry->sv, entry->svlen);
++ /*
+ {
+ str = ajStrNew();
+ ajStrAssignS(&str,sv);
+ ajListPush(entry->ac,(void *)str);
+ }
+! */
+ if(entry->do_description && ajStrGetLen(de))
++ embBtreeFastaDE(de, entry->de, entry->delen);
++ /*
+ while(ajRegExec(dbxfasta_wrdexp,de))
+ {
+ ajRegSubI(dbxfasta_wrdexp, 1, &tmpfd);
+***************
+*** 459,465 ****
+ ajListPush(entry->de,(void *)str);
+ ajRegPost(dbxfasta_wrdexp, &de);
+ }
+!
+
+ ajStrDel(&de);
+ ajStrDel(&ac);
+--- 482,488 ----
+ ajListPush(entry->de,(void *)str);
+ ajRegPost(dbxfasta_wrdexp, &de);
+ }
+! */
+
+ ajStrDel(&de);
+ ajStrDel(&ac);
+diff -c -N --recursive EMBOSS-5.0.0old/emboss/psiphi.c EMBOSS-5.0.0/emboss/psiphi.c
+*** EMBOSS-5.0.0old/emboss/psiphi.c 2007-07-06 13:15:29.000000000 +0100
+--- EMBOSS-5.0.0/emboss/psiphi.c 2008-03-06 10:14:15.000000000 +0000
+***************
+*** 160,166 ****
+ finishres = ajAcdGetInt("finishresiduenumber");
+
+ /* reserve memory for and read in structure */
+! /* JISON */ pdb = ajPdbReadoldNew(pdbfile);
+
+ /* check and set number of chain to be analysed */
+ highest = pdb->Nchn;
+--- 160,166 ----
+ finishres = ajAcdGetInt("finishresiduenumber");
+
+ /* reserve memory for and read in structure */
+! /* JISON */ pdb = ajPdbReadNew(pdbfile,0);
+
+ /* check and set number of chain to be analysed */
+ highest = pdb->Nchn;
+***************
+*** 440,445 ****
+--- 440,448 ----
+ ajint lowestres = 0;
+
+ AjPAtom inlist = NULL;
++
++ if(!ajListGetLength(pdb->Chains[myindex]->Atoms))
++ ajFatal("Chain %d has no atoms",myindex+1);
+
+ /* read first atom in list into memory, but keep it on list */
+ ajListPeek(pdb->Chains[myindex]->Atoms,
+diff -c -N --recursive EMBOSS-5.0.0old/nucleus/embindex.c EMBOSS-5.0.0/nucleus/embindex.c
+*** EMBOSS-5.0.0old/nucleus/embindex.c 2007-07-06 13:15:00.000000000 +0100
+--- EMBOSS-5.0.0/nucleus/embindex.c 2008-03-06 10:19:18.000000000 +0000
+***************
+*** 1071,1222 ****
+
+ resource = ajStrGetPtr(entry->dbrs);
+ if(!ajNamRsAttrValueC(resource,"type",&value))
+! ajFatal("Missing resource entry (%S) for indexing",entry->dbrs);
+ if(!ajStrMatchCaseC(value,"Index"))
+! ajFatal("Incorrect 'type' field for resource (%S)",entry->dbrs);
+
+
+
+ if(!ajNamRsAttrValueC(resource,"idlen",&value))
+! entry->idlen = BTREE_DEF_IDLEN;
+ else
+ {
+! if(ajStrToUint(value,&n))
+! entry->idlen = n;
+! else
+! {
+! ajErr("Bad value for index resource 'idlen'");
+! entry->idlen = BTREE_DEF_IDLEN;
+! }
+ }
+
+ if(!ajNamRsAttrValueC(resource,"acclen",&value))
+! entry->aclen = BTREE_DEF_ACLEN;
+ else
+ {
+! if(ajStrToUint(value,&n))
+! entry->aclen = n;
+! else
+! {
+! ajErr("Bad value for index resource 'acclen'");
+! entry->aclen = BTREE_DEF_ACLEN;
+! }
+ }
+
+ if(!ajNamRsAttrValueC(resource,"svlen",&value))
+! entry->svlen = BTREE_DEF_SVLEN;
+ else
+ {
+! if(ajStrToUint(value,&n))
+! entry->svlen = n;
+! else
+! {
+! ajErr("Bad value for index resource 'svlen'");
+! entry->svlen = BTREE_DEF_SVLEN;
+! }
+ }
+
+ if(!ajNamRsAttrValueC(resource,"keylen",&value))
+! entry->kwlen = BTREE_DEF_KWLEN;
+ else
+ {
+! if(ajStrToUint(value,&n))
+! entry->kwlen = n;
+! else
+! {
+! ajErr("Bad value for index resource 'keylen'");
+! entry->kwlen = BTREE_DEF_KWLEN;
+! }
+ }
+
+ if(!ajNamRsAttrValueC(resource,"deslen",&value))
+! entry->delen = BTREE_DEF_DELEN;
+ else
+ {
+! if(ajStrToUint(value,&n))
+! entry->delen = n;
+! else
+! {
+! ajErr("Bad value for index resource 'deslen'");
+! entry->delen = BTREE_DEF_DELEN;
+! }
+ }
+
+ if(!ajNamRsAttrValueC(resource,"orglen",&value))
+! entry->txlen = BTREE_DEF_TXLEN;
+ else
+ {
+! if(ajStrToUint(value,&n))
+! entry->txlen = n;
+! else
+! {
+! ajErr("Bad value for index resource 'orglen'");
+! entry->txlen = BTREE_DEF_TXLEN;
+! }
+ }
+
+ if(!ajNamGetValueC("CACHESIZE",&value))
+! entry->cachesize = BTREE_DEF_CACHESIZE;
+ else
+ {
+! if(ajStrToUint(value,&n))
+! entry->cachesize = n;
+! else
+! {
+! ajErr("Bad value for environment variable 'CACHESIZE'");
+! entry->cachesize = BTREE_DEF_CACHESIZE;
+! }
+ }
+
+ if(!ajNamGetValueC("PAGESIZE",&value))
+! entry->pagesize = BTREE_DEF_PAGESIZE;
+ else
+ {
+! if(ajStrToUint(value,&n))
+! entry->pagesize = n;
+! else
+! {
+! ajErr("Bad value for environment variable 'PAGESIZE'");
+! entry->pagesize = BTREE_DEF_PAGESIZE;
+! }
+ }
+
+
+! entry->idorder = (entry->pagesize - 60) / ((entry->idlen + 1) + 12);
+! entry->idfill = (entry->pagesize - 16) / (entry->idlen + 28);
+! entry->acorder = (entry->pagesize - 60) / ((entry->aclen + 1) + 12);
+! entry->acfill = (entry->pagesize - 16) / (entry->aclen + 28);
+! entry->svorder = (entry->pagesize - 60) / ((entry->svlen + 1) + 12);
+! entry->svfill = (entry->pagesize - 16) / (entry->svlen + 28);
+!
+! entry->kworder = (entry->pagesize - 60) / ((entry->kwlen + 1) + 12);
+! entry->kwfill = (entry->pagesize - 16) / (entry->kwlen + 28);
+! entry->deorder = (entry->pagesize - 60) / ((entry->delen + 1) + 12);
+! entry->defill = (entry->pagesize - 16) / (entry->delen + 28);
+! entry->txorder = (entry->pagesize - 60) / ((entry->txlen + 1) + 12);
+! entry->txfill = (entry->pagesize - 16) / (entry->txlen + 28);
+!
+! entry->kwsecorder = (entry->pagesize - 60) / ((entry->idlen + 1) + 12);
+! entry->desecorder = (entry->pagesize - 60) / ((entry->idlen + 1) + 12);
+! entry->txsecorder = (entry->pagesize - 60) / ((entry->idlen + 1) + 12);
+!
+! entry->kwsecfill = (entry->pagesize - 16) / (entry->idlen + 4);
+! entry->desecfill = (entry->pagesize - 16) / (entry->idlen + 4);
+! entry->txsecfill = (entry->pagesize - 16) / (entry->idlen + 4);
+
+! entry->idsecorder = (entry->pagesize - 60) / 24;
+! entry->idsecfill = (entry->pagesize - 60) / 20;
+
+! entry->acsecorder = (entry->pagesize - 60) / 24;
+! entry->acsecfill = (entry->pagesize - 60) / 20;
+
+- entry->svsecorder = (entry->pagesize - 60) / 24;
+- entry->svsecfill = (entry->pagesize - 60) / 20;
+-
+ ajStrDel(&value);
+
+ return;
+! }
+
+
+
+--- 1071,1278 ----
+
+ resource = ajStrGetPtr(entry->dbrs);
+ if(!ajNamRsAttrValueC(resource,"type",&value))
+! ajFatal("Missing resource entry (%S) for indexing",entry->dbrs);
+ if(!ajStrMatchCaseC(value,"Index"))
+! ajFatal("Incorrect 'type' field for resource (%S)",entry->dbrs);
+
+
+
+ if(!ajNamRsAttrValueC(resource,"idlen",&value))
+! entry->idlen = BTREE_DEF_IDLEN;
+ else
+ {
+! if(ajStrToUint(value,&n))
+! entry->idlen = n;
+! else
+! {
+! ajErr("Bad value for index resource 'idlen'");
+! entry->idlen = BTREE_DEF_IDLEN;
+! }
+ }
+
+ if(!ajNamRsAttrValueC(resource,"acclen",&value))
+! entry->aclen = BTREE_DEF_ACLEN;
+ else
+ {
+! if(ajStrToUint(value,&n))
+! entry->aclen = n;
+! else
+! {
+! ajErr("Bad value for index resource 'acclen'");
+! entry->aclen = BTREE_DEF_ACLEN;
+! }
+ }
+
+ if(!ajNamRsAttrValueC(resource,"svlen",&value))
+! entry->svlen = BTREE_DEF_SVLEN;
+ else
+ {
+! if(ajStrToUint(value,&n))
+! entry->svlen = n;
+! else
+! {
+! ajErr("Bad value for index resource 'svlen'");
+! entry->svlen = BTREE_DEF_SVLEN;
+! }
+ }
+
+ if(!ajNamRsAttrValueC(resource,"keylen",&value))
+! entry->kwlen = BTREE_DEF_KWLEN;
+ else
+ {
+! if(ajStrToUint(value,&n))
+! entry->kwlen = n;
+! else
+! {
+! ajErr("Bad value for index resource 'keylen'");
+! entry->kwlen = BTREE_DEF_KWLEN;
+! }
+ }
+
+ if(!ajNamRsAttrValueC(resource,"deslen",&value))
+! entry->delen = BTREE_DEF_DELEN;
+ else
+ {
+! if(ajStrToUint(value,&n))
+! entry->delen = n;
+! else
+! {
+! ajErr("Bad value for index resource 'deslen'");
+! entry->delen = BTREE_DEF_DELEN;
+! }
+ }
+
+ if(!ajNamRsAttrValueC(resource,"orglen",&value))
+! entry->txlen = BTREE_DEF_TXLEN;
+ else
+ {
+! if(ajStrToUint(value,&n))
+! entry->txlen = n;
+! else
+! {
+! ajErr("Bad value for index resource 'orglen'");
+! entry->txlen = BTREE_DEF_TXLEN;
+! }
+ }
+
+ if(!ajNamGetValueC("CACHESIZE",&value))
+! {
+! entry->cachesize = BTREE_DEF_CACHESIZE;
+! ajUser("CACHESIZE defaults to %d", entry->cachesize);
+! }
+ else
+ {
+! if(ajStrToUint(value,&n))
+! {
+! entry->cachesize = n;
+! }
+! else
+! {
+! ajErr("Bad value for environment variable 'CACHESIZE'");
+! entry->cachesize = BTREE_DEF_CACHESIZE;
+! }
+ }
+
+ if(!ajNamGetValueC("PAGESIZE",&value))
+! {
+! entry->pagesize = BTREE_DEF_PAGESIZE;
+! ajUser("PAGESIZE defaults to %d", entry->pagesize);
+! }
+ else
+ {
+! if(ajStrToUint(value,&n))
+! {
+! entry->pagesize = n;
+! }
+! else
+! {
+! ajErr("Bad value for environment variable 'PAGESIZE'");
+! entry->pagesize = BTREE_DEF_PAGESIZE;
+! }
+ }
+
+
+! entry->idorder = (entry->pagesize - (BT_NODEPREAMBLE + BT_PTRLEN)) /
+! ((entry->idlen + 1) + BT_IDKEYEXTRA);
+
+! entry->idfill = (entry->pagesize - BT_BUCKPREAMBLE) /
+! ((entry->idlen + 1) + BT_KEYLENENTRY + BT_DDOFFROFF);
+
+! entry->acorder = (entry->pagesize - (BT_NODEPREAMBLE + BT_PTRLEN)) /
+! ((entry->aclen + 1) + BT_IDKEYEXTRA);
+!
+! entry->acfill = (entry->pagesize - BT_BUCKPREAMBLE) /
+! ((entry->aclen + 1) + BT_KEYLENENTRY + BT_DDOFFROFF);
+!
+! entry->svorder = (entry->pagesize - (BT_NODEPREAMBLE + BT_PTRLEN)) /
+! ((entry->svlen + 1) + BT_IDKEYEXTRA);
+!
+! entry->svfill = (entry->pagesize - BT_BUCKPREAMBLE) /
+! ((entry->svlen + 1) + BT_KEYLENENTRY + BT_DDOFFROFF);
+!
+! entry->kworder = (entry->pagesize - (BT_NODEPREAMBLE + BT_PTRLEN)) /
+! ((entry->kwlen + 1) + BT_IDKEYEXTRA);
+!
+! entry->kwfill = (entry->pagesize - BT_BUCKPREAMBLE) /
+! ((entry->kwlen + 1) + BT_KEYLENENTRY + BT_DDOFFROFF);
+!
+! entry->deorder = (entry->pagesize - (BT_NODEPREAMBLE + BT_PTRLEN)) /
+! ((entry->delen + 1) + BT_IDKEYEXTRA);
+!
+! entry->defill = (entry->pagesize - BT_BUCKPREAMBLE) /
+! ((entry->delen + 1) + BT_KEYLENENTRY + BT_DDOFFROFF);
+!
+! entry->txorder = (entry->pagesize - (BT_NODEPREAMBLE + BT_PTRLEN)) /
+! ((entry->txlen + 1) + BT_IDKEYEXTRA);
+!
+! entry->txfill = (entry->pagesize - BT_BUCKPREAMBLE) /
+! ((entry->txlen + 1) + BT_KEYLENENTRY + BT_DDOFFROFF);
+!
+!
+! entry->idsecorder = (entry->pagesize - (BT_NODEPREAMBLE + BT_PTRLEN)) /
+! (BT_OFFKEYLEN + BT_IDKEYEXTRA);
+!
+! entry->acsecorder = (entry->pagesize - (BT_NODEPREAMBLE + BT_PTRLEN)) /
+! (BT_OFFKEYLEN + BT_IDKEYEXTRA);
+!
+! entry->svsecorder = (entry->pagesize - (BT_NODEPREAMBLE + BT_PTRLEN)) /
+! (BT_OFFKEYLEN + BT_IDKEYEXTRA);
+!
+!
+! entry->idsecfill = (entry->pagesize - BT_BUCKPREAMBLE) /
+! BT_DOFFROFF;
+!
+! entry->acsecfill = (entry->pagesize - BT_BUCKPREAMBLE) /
+! BT_DOFFROFF;
+!
+! entry->svsecfill = (entry->pagesize - BT_BUCKPREAMBLE) /
+! BT_DOFFROFF;
+!
+!
+! /*
+! * The secondary tree keys are the IDs of the entries containing
+! * the keywords
+! */
+!
+! entry->kwsecorder = (entry->pagesize - (BT_NODEPREAMBLE + BT_PTRLEN)) /
+! ((entry->idlen + 1) + BT_IDKEYEXTRA);
+! entry->desecorder = (entry->pagesize - (BT_NODEPREAMBLE + BT_PTRLEN)) /
+! ((entry->idlen + 1) + BT_IDKEYEXTRA);
+! entry->txsecorder = (entry->pagesize - (BT_NODEPREAMBLE + BT_PTRLEN)) /
+! ((entry->idlen + 1) + BT_IDKEYEXTRA);
+!
+!
+! entry->kwsecfill = (entry->pagesize - BT_BUCKPREAMBLE) /
+! ((entry->idlen + 1) + BT_KEYLENENTRY);
+! entry->desecfill = (entry->pagesize - BT_BUCKPREAMBLE) /
+! ((entry->idlen + 1) + BT_KEYLENENTRY);
+! entry->txsecfill = (entry->pagesize - BT_BUCKPREAMBLE) /
+! ((entry->idlen + 1) + BT_KEYLENENTRY);
+
+ ajStrDel(&value);
+
+ return;
+! }
+
+
+
+***************
+*** 1251,1257 ****
+ entry->cachesize,
+ entry->idsecorder, slevel,
+ entry->idsecfill, count,
+! entry->kwlen);
+ if(!entry->idcache)
+ ajFatal("Cannot open ID index");
+
+--- 1307,1313 ----
+ entry->cachesize,
+ entry->idsecorder, slevel,
+ entry->idsecfill, count,
+! entry->idlen);
+ if(!entry->idcache)
+ ajFatal("Cannot open ID index");
+
+***************
+*** 1267,1273 ****
+ entry->cachesize,
+ entry->acsecorder, slevel,
+ entry->acsecfill, count,
+! entry->kwlen);
+ if(!entry->accache)
+ ajFatal("Cannot open ACC index");
+
+--- 1323,1329 ----
+ entry->cachesize,
+ entry->acsecorder, slevel,
+ entry->acsecfill, count,
+! entry->aclen);
+ if(!entry->accache)
+ ajFatal("Cannot open ACC index");
+
+***************
+*** 1282,1288 ****
+ entry->cachesize,
+ entry->svsecorder, slevel,
+ entry->svsecfill, count,
+! entry->kwlen);
+ if(!entry->svcache)
+ ajFatal("Cannot open SV index");
+
+--- 1338,1344 ----
+ entry->cachesize,
+ entry->svsecorder, slevel,
+ entry->svsecfill, count,
+! entry->svlen);
+ if(!entry->svcache)
+ ajFatal("Cannot open SV index");
+
Modified: trunk/packages/emboss/trunk/debian/patches/series
===================================================================
--- trunk/packages/emboss/trunk/debian/patches/series 2008-03-07 01:15:29 UTC (rev 1526)
+++ trunk/packages/emboss/trunk/debian/patches/series 2008-03-07 02:18:12 UTC (rev 1527)
@@ -1,2 +1,2 @@
using-pager-in-tfm.patch
-patch-1-3
+patch-1-9
More information about the debian-med-commit
mailing list