# ACEDB User Group Newsletter - December 2003

If you want to have this newsletter mailed to you or you want to make comments/suggestions about the format/content then send an email to acedb@sanger.ac.uk.

This month was mostly a month of bug fixes with some improvements to fmap display.

## Articles

### Better FMap and Tree display interactions

When displaying objects in the Tree display window, its always been possible to click on a sequence object key within the tree display and see the FMap display of that object. The problem with this in the past has been that in the case where the sequence object is actually the parent of the object in the tree display the subsequent fmap is not that helpful in that it displays the whole of the object instead of the part that relates to the object in the tree display. The acedb display system will now show the sequence object zoomed and positioned around the object in the tree display.

## Bugs Fixed

### EMBL file bugs

The EMBL output code will now dump Transcript class objects (as used in Wormbase) correctly, they are output in the same way that gene objects are dumped.

The EMBL error message code had a bug in it, it specified a "`%d`" instead of "`%s`" in the format string producing garbage messages.

### GTK file chooser

The gtk file selector to now correctly retains the file name when the complete default filename is already known.

### Tablemaker output bug

Fixed bug in tablemaker output file handling, file was not closed until a) user quit acedb or b) user made another table. Confusing and annoying because it looks like the file hasn't been written.

I thought I had fixed all the bugs caused by aceOutPrint(fo, ptr_str) where the string pointed to happens to have a "%" in it, but not so, hopefully this is the last one. This bug caused tablemaker to fail.

## Developers Corner

### New aceOutPrintStr() function

I've added a new `aceOutPrintStr()` call for printing simple strings. This is try and dissuade people from using aceOutPrint() for this purpose which leads to bugs if the string happens to contain a "%" which is then interpreted as a formatting instruction with usually bad results.

### qsort/msort routines

(This article is courtesy of Jean Thierry-Mieg mieg@ray.nlm.nih.gov)

Replaced qsort by self contained msort, incredibly qsort crashed (rarely but reproducibly) under solaris 5.7 on sparc machines.

### New version of dict

(This article is courtesy of Jean Thierry-Mieg mieg@ray.nlm.nih.gov)

Wonderful new version of the dict with stable memory that means after you add in dict and get a name out of the dict that char* is stable until the dict is destroyed. Whereas before it went out of scope if by chance the dict was realocted by an implicit arrayExpand.

All the relocatable memory addresses are now fully hidden from the user by the modified obscure dict.h

Truly, it is a tremendous improvement !!!

### SMap "area"

(This article is courtesy of Simon Kelley srk@sanger.ac.uk)

Added new facility to specify "area". Any object completely outside the area is elided, and sMapDNA returns DNA only for the area.

`sMapCreate()` sets the area to be the whole smap, so backwards compatibility is ensured. `sMapCreateEx()` allows setting the area. Note that the area is specficied in terms of the smap coordinate system, ie 1-based and with area1 < area2 always.

## December monthly build now available.

You can pick up the monthly builds from:

Sanger users
  ~acedb/RELEASE.DEVELOPMENT
External users
  http://www.acedb.org/Software/Downloads/monthly.shtml

## Next User Group Meeting - D319, 2.30pm, Thursday, 19th December 2002

Last modified: Fri Feb 28 16:01:50 GMT 2003