summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Seifert <soap@gentoo.org>2017-10-15 21:59:29 -0700
committerDavid Seifert <soap@gentoo.org>2017-10-30 00:20:28 +0100
commit36b43ceb873e20cc36cf55b6a2e09c3d01306e49 (patch)
treebfcb4d639412573b3fd231d51db552b3113b21c5 /sci-chemistry
parentmedia-plugins/gkrellmpc: x86 stable (bug #626252) (diff)
downloadgentoo-36b43ceb873e20cc36cf55b6a2e09c3d01306e49.tar.gz
gentoo-36b43ceb873e20cc36cf55b6a2e09c3d01306e49.tar.bz2
gentoo-36b43ceb873e20cc36cf55b6a2e09c3d01306e49.zip
sci-chemistry/molmol: Move patches to dist tarball
Package-Manager: Portage-2.3.11, Repoman-2.3.3
Diffstat (limited to 'sci-chemistry')
-rw-r--r--sci-chemistry/molmol/Manifest1
-rw-r--r--sci-chemistry/molmol/files/cast.patch21
-rw-r--r--sci-chemistry/molmol/files/ldflags.patch13
-rw-r--r--sci-chemistry/molmol/files/libpng15.patch32
-rw-r--r--sci-chemistry/molmol/files/molmol-2k_p2-fink.patch356
-rw-r--r--sci-chemistry/molmol/files/opengl.patch96
-rw-r--r--sci-chemistry/molmol/files/pjf_RH9_molmol2k2.diff103
-rw-r--r--sci-chemistry/molmol/files/prefix.patch22
-rw-r--r--sci-chemistry/molmol/files/wild.patch1866
-rw-r--r--sci-chemistry/molmol/molmol-2k_p2-r2.ebuild15
-rw-r--r--sci-chemistry/molmol/molmol-2k_p2-r3.ebuild17
-rw-r--r--sci-chemistry/molmol/molmol-2k_p2-r4.ebuild17
-rw-r--r--sci-chemistry/molmol/molmol-2k_p2-r5.ebuild17
13 files changed, 36 insertions, 2540 deletions
diff --git a/sci-chemistry/molmol/Manifest b/sci-chemistry/molmol/Manifest
index 3b9280e4b834..aed5ea92035b 100644
--- a/sci-chemistry/molmol/Manifest
+++ b/sci-chemistry/molmol/Manifest
@@ -1,2 +1,3 @@
DIST molmol-2k.2.0-doc.tar.gz 1062297 SHA256 07e1c3fd04ffe7c9e9d91eaefa0bf72e6d0913a981eec3bf0879bfc65537a6be SHA512 131f747a5762859398ebe9b676a07df56c82c8864ecc035ec914f1dea74dafcd67f87993421dfe5899c640470c7e1e1ef03ae262b04a9b360ae329eb19a331fe WHIRLPOOL b74f47149c4dce8199722075fda17c9cbe22263eec57b647ef543b15386d53b267ee85d5a2c44a4fda7e533fd6ccdafb82fbbbd71e671ec4e1fd58e07363677c
DIST molmol-2k.2.0-src.tar.gz 1088805 SHA256 1104dcb1b2517581c7d6b1695ff2e92f4076ad34afc48dd896eec38e5acf2287 SHA512 6ab01a6fd3d19752634a2cf22919a20e43d195768bd4bdacd5f0bbe016c3058c94915bad4c7fa64dcd86576be39cad0ae112cb62f5e69ffb10041518101e7a9b WHIRLPOOL e258ede83ac4a8fe9b4a9274588ced7e1294415d864c909ed83e3e56d36512e1388e6f77e45da614bc19992a265d32b739c54aace7faa28971c61a01bba27541
+DIST molmol-patches.tbz2 17528 SHA256 5c3b867762e563c91583e3c965c956e4004edc5532e84a33dce244e0140f596c SHA512 bd94baf0a378f40f854f396963edd9b9e4afc5c56462ee6f8b68889290afdb4c5d9b10878aa5619d0a70153453fe6ee8e7540064522c6db0291ae9162bba9287 WHIRLPOOL 6ebe6ee4142e9c10c5960a0defd3d3b4a7841281b42f865e7777d5f28d878202500442e6afa21e3bd64e691d4ed903712baffe5488abd8dcdec99cb616004380
diff --git a/sci-chemistry/molmol/files/cast.patch b/sci-chemistry/molmol/files/cast.patch
deleted file mode 100644
index 16ac411c76e5..000000000000
--- a/sci-chemistry/molmol/files/cast.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/src/data/DataDist.c b/src/data/DataDist.c
-index 7f7121f..18eef33 100644
---- a/src/data/DataDist.c
-+++ b/src/data/DataDist.c
-@@ -27,6 +27,7 @@
-
- #include <stdio.h>
- #include <stdlib.h>
-+#include <stdint.h>
-
- #include <hashtab.h>
-
-@@ -89,7 +90,7 @@ hashInter(void *p, unsigned size)
- {
- TabEntryInter *entryP = p;
-
-- return ((unsigned) entryP->atom1P + (unsigned) entryP->atom2P) % size;
-+ return ((unsigned)(uintptr_t) entryP->atom1P + (unsigned)(uintptr_t) entryP->atom2P) % size;
- }
-
- static int
diff --git a/sci-chemistry/molmol/files/ldflags.patch b/sci-chemistry/molmol/files/ldflags.patch
deleted file mode 100644
index ff6e06ef490c..000000000000
--- a/sci-chemistry/molmol/files/ldflags.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/main/Makefile b/src/main/Makefile
-index 74530fa..102d1b7 100644
---- a/src/main/Makefile
-+++ b/src/main/Makefile
-@@ -22,7 +22,7 @@ SRC = $(OBJ:.o=.c)
- default: $(PROGRAM)
-
- $(PROGRAM): $(OBJ) $(LIBS) $(SGLIB) $(TOOLSLIB)
-- $(CC) -o $@ $(CFLAGS) $(OBJ) $(LIBS) $(SGLIB) $(TOOLSLIB) $(SYSLIB)
-+ $(CC) $(CFLAGS) ${LDFLAGS} -o $@ $(OBJ) $(LIBS) $(SGLIB) $(TOOLSLIB) $(SYSLIB)
-
- clean:
- rm -f $(OBJ) $(PROGRAM) core *.ps
diff --git a/sci-chemistry/molmol/files/libpng15.patch b/sci-chemistry/molmol/files/libpng15.patch
deleted file mode 100644
index cd27e4906608..000000000000
--- a/sci-chemistry/molmol/files/libpng15.patch
+++ /dev/null
@@ -1,32 +0,0 @@
---- src/motogl/MotOGLDump.c
-+++ src/motogl/MotOGLDump.c
-@@ -248,7 +248,7 @@
- pngErrHand(png_structp pngStrucP, char *errMsg)
- {
- IORaiseError(errMsg);
-- longjmp(pngStrucP->jmpbuf, 1);
-+ longjmp(png_jmpbuf(pngStrucP), 1);
- }
- #endif
-
-@@ -357,7 +357,7 @@
- return IO_RES_ERR;
- }
-
-- if (setjmp(pngStrucP->jmpbuf)) {
-+ if (setjmp(png_jmpbuf(pngStrucP))) {
- if (cBuf != NULL)
- free(cBuf);
- if (fBuf != NULL)
-@@ -368,10 +368,7 @@
-
- png_init_io(pngStrucP, ImgFileP);
-
-- pngInfoP->width = imgW;
-- pngInfoP->height = imgH;
-- pngInfoP->bit_depth = 8;
-- pngInfoP->color_type = PNG_COLOR_TYPE_RGB;
-+ png_set_IHDR(pngStrucP, pngInfoP, imgW, imgH, 8, PNG_COLOR_TYPE_RGB, 0, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
- png_write_info(pngStrucP, pngInfoP);
- }
- #endif
diff --git a/sci-chemistry/molmol/files/molmol-2k_p2-fink.patch b/sci-chemistry/molmol/files/molmol-2k_p2-fink.patch
deleted file mode 100644
index 14cc83b63e9e..000000000000
--- a/sci-chemistry/molmol/files/molmol-2k_p2-fink.patch
+++ /dev/null
@@ -1,356 +0,0 @@
- src/calc/CalcRmsd.c | 8 ++++----
- src/cmdfig/FigUtil.c | 46 +++++++++++++++++++++++-----------------------
- src/cmdio/ExWriteSec.c | 6 +++---
- src/data/DataDist.c | 2 +-
- src/data/DataHand.c | 8 ++++----
- src/expr/ExprScan.c | 2 +-
- src/iodev/IODev.c | 2 --
- src/motif/MotifDial.c | 2 +-
- src/motif/MotifMainW.c | 4 ++--
- src/os/GFile.c | 2 +-
- src/prim/PrimDraw.c | 2 +-
- src/prim/RibbonCalc.c | 12 ++++++------
- src/pudev/PuMainW.c | 2 +-
- src/tty/TTY.c | 2 +-
- tools/src/IsoSurface.c | 22 +++++++++++-----------
- 15 files changed, 60 insertions(+), 62 deletions(-)
-
-diff --git a/src/calc/CalcRmsd.c b/src/calc/CalcRmsd.c
-index 0e4629e..ed99e76 100644
---- a/src/calc/CalcRmsd.c
-+++ b/src/calc/CalcRmsd.c
-@@ -1025,10 +1025,10 @@ CalcRmsd(BOOL fitPairs, char *range, char *glob1, char *glob2,
- }
-
- for (propI = 0; propI < 2; propI++) {
-- if (groupNo == 0 || propI == 0 && ! calc1)
-+ if (groupNo == 0 || (propI == 0 && ! calc1))
- continue;
-
-- if (groupNo == 0 || propI == 1 && ! calc2)
-+ if (groupNo == 0 || (propI == 1 && ! calc2))
- continue;
-
- Report("\nAverage RMSD, dev., min. and max of ");
-@@ -1052,8 +1052,8 @@ CalcRmsd(BOOL fitPairs, char *range, char *glob1, char *glob2,
- Report(" ");
-
- for (groupI2 = 0; groupI2 < groupNo; groupI2++) {
-- if (groupI1 < groupI2 &&
-- groupInfoP[groupI1].membNo != groupInfoP[groupI2].membNo ||
-+ if (((groupI1 < groupI2) &&
-+ (groupInfoP[groupI1].membNo != groupInfoP[groupI2].membNo)) ||
- groupInfoP[groupI1].membNo == 0 ||
- groupInfoP[groupI2].membNo == 0) {
- groupInfoP[groupI2].stat.avg = 0.0f;
-diff --git a/src/cmdfig/FigUtil.c b/src/cmdfig/FigUtil.c
-index 20d403a..b8dc3a6 100644
---- a/src/cmdfig/FigUtil.c
-+++ b/src/cmdfig/FigUtil.c
-@@ -44,29 +44,29 @@ typedef struct {
- } TabEntry;
-
- static TabEntry GreekTab[] = {
-- "ALPHA", 'a',
-- "BETA", 'b',
-- "CHI", 'c',
-- "DELTA", 'd',
-- "EPSILON", 'e',
-- "PHI" , 'f',
-- "GAMMA", 'g',
-- "ETA", 'h',
-- "IOTA", 'i',
-- "KAPPA", 'k',
-- "LAMBDA", 'l',
-- "MU", 'm',
-- "NU", 'n',
-- "PI", 'p',
-- "THETA", 'q',
-- "RHO", 'r',
-- "SIGMA", 's',
-- "TAU", 't',
-- "UPSILON", 'u',
-- "OMEGA", 'w',
-- "XI", 'x',
-- "PSI", 'y',
-- "ZETA", 'z'
-+ {"ALPHA", 'a'},
-+ {"BETA", 'b'},
-+ {"CHI", 'c'},
-+ {"DELTA", 'd'},
-+ {"EPSILON", 'e'},
-+ {"PHI" , 'f'},
-+ {"GAMMA", 'g'},
-+ {"ETA", 'h'},
-+ {"IOTA", 'i'},
-+ {"KAPPA", 'k'},
-+ {"LAMBDA", 'l'},
-+ {"MU", 'm'},
-+ {"NU", 'n'},
-+ {"PI", 'p'},
-+ {"THETA", 'q'},
-+ {"RHO", 'r'},
-+ {"SIGMA", 's'},
-+ {"TAU", 't'},
-+ {"UPSILON", 'u'},
-+ {"OMEGA", 'w'},
-+ {"XI", 'x'},
-+ {"PSI", 'y'},
-+ {"ZETA", 'z'}
- };
-
- int
-diff --git a/src/cmdio/ExWriteSec.c b/src/cmdio/ExWriteSec.c
-index 7f705d4..8da8336 100644
---- a/src/cmdio/ExWriteSec.c
-+++ b/src/cmdio/ExWriteSec.c
-@@ -250,9 +250,9 @@ writeSecondary(DhResP *resPA, int resNo)
-
- if (neighLStart != NO_RES) {
- if (num != neighLEnd + 1 ||
-- neighNum != neighREnd + 1 && neighNum != neighREnd - 1 ||
-- neighREnd > neighRStart && neighNum != neighREnd + 1 ||
-- neighREnd < neighRStart && neighNum != neighREnd - 1) {
-+ (neighNum != neighREnd + 1 && neighNum != neighREnd - 1) ||
-+ (neighREnd > neighRStart && neighNum != neighREnd + 1) ||
-+ (neighREnd < neighRStart && neighNum != neighREnd - 1)) {
- writeNeigh(neighLStart, neighLEnd, neighRStart, neighREnd);
- neighLStart = NO_RES;
- } else {
-diff --git a/src/data/DataDist.c b/src/data/DataDist.c
-index 18eef33..c683f9e 100644
---- a/src/data/DataDist.c
-+++ b/src/data/DataDist.c
-@@ -117,7 +117,7 @@ fillIntra(TabEntryIntra *entryP, DhAtomP atom1P, DhAtomP atom2P)
- entryP->atom2I = DhAtomGetNumber(atom2P);
-
- if (entryP->res1I > entryP->res2I ||
-- entryP->res1I == entryP->res2I && entryP->atom1I > entryP->atom2I) {
-+ (entryP->res1I == entryP->res2I && entryP->atom1I > entryP->atom2I)) {
- t = entryP->res1I;
- entryP->res1I = entryP->res2I;
- entryP->res2I = t;
-diff --git a/src/data/DataHand.c b/src/data/DataHand.c
-index b20e29c..368aad3 100644
---- a/src/data/DataHand.c
-+++ b/src/data/DataHand.c
-@@ -2043,8 +2043,8 @@ applyBondList(PropRefP refP, LINLIST bondL, int groupNum,
- groupNum1 = getGroupNum(bondAddP->res1P->molP);
- groupNum2 = getGroupNum(bondAddP->res2P->molP);
- if (atom1P->state == AS_VALID && atom2P->state == AS_VALID &&
-- (groupNum1 == groupNum && groupNum2 == groupNum ||
-- groupNum < 0 && groupNum1 != groupNum2))
-+ ((groupNum1 == groupNum && groupNum2 == groupNum) ||
-+ (groupNum < 0 && groupNum1 != groupNum2)))
- applyF(bondP, atom1P, atom2P, clientData);
- }
- bondAddP = nextBondAddP;
-@@ -2367,8 +2367,8 @@ callDistApply(PropRefP refP, DhDistP distP, int groupNum,
- groupNum1 = getGroupNum(distP->res1P->molP);
- groupNum2 = getGroupNum(distP->res2P->molP);
- if (atom1P->state == AS_VALID && atom2P->state == AS_VALID &&
-- (groupNum1 == groupNum && groupNum2 == groupNum ||
-- groupNum < 0 && groupNum1 != groupNum2))
-+ ((groupNum1 == groupNum && groupNum2 == groupNum) ||
-+ (groupNum < 0 && groupNum1 != groupNum2)))
- applyF(distP, atom1P, atom2P, clientData);
- }
- }
-diff --git a/src/expr/ExprScan.c b/src/expr/ExprScan.c
-index dcef69e..6266b4d 100644
---- a/src/expr/ExprScan.c
-+++ b/src/expr/ExprScan.c
-@@ -221,7 +221,7 @@ ExprScanGetSym(void)
- for (;;) {
- if (isdigit(ch)) {
- DStrAppChar(StrVal, ch);
-- } else if (ch == '.' && ExprStr[1] != '.' ||
-+ } else if ((ch == '.' && ExprStr[1] != '.') ||
- ch == 'e' || ch == 'E') {
- DStrAppChar(StrVal, ch);
- isFloat = TRUE;
-diff --git a/src/iodev/IODev.c b/src/iodev/IODev.c
-index 9c04ce8..aa4f9a7 100644
---- a/src/iodev/IODev.c
-+++ b/src/iodev/IODev.c
-@@ -44,7 +44,6 @@ extern void IOMotifGLDSetDev(void);
- #endif
- #ifdef IO_DEV_MOTIF_OGL
- extern void IOMotifOGLSetDev(void);
--extern void IOMotifOGLDSetDev(void);
- #endif
- #ifdef IO_DEV_MOTIF_XGL
- extern void IOMotifXGLSetDev(void);
-@@ -76,7 +75,6 @@ static DevListEntry DevList[] = {
- #endif
- #ifdef IO_DEV_MOTIF_OGL
- {"Motif/OpenGL", IOMotifOGLSetDev},
-- {"Motif/OpenGLD", IOMotifOGLDSetDev},
- #endif
- #ifdef IO_DEV_MOTIF_XGL
- {"Motif/XGL", IOMotifXGLSetDev},
-diff --git a/src/motif/MotifDial.c b/src/motif/MotifDial.c
-index 2514549..6e3bfd7 100644
---- a/src/motif/MotifDial.c
-+++ b/src/motif/MotifDial.c
-@@ -1323,7 +1323,7 @@ PuMotifAddGizmoCB(PuGizmo gizmo, PuGizmoCBType type,
-
- switch (type) {
- case PU_CT_ACTIVATE:
-- if (gType == GIZMO_TEXT_FIELD || GIZMO_TEXT)
-+ if (gType == (GIZMO_TEXT_FIELD | GIZMO_TEXT))
- XtAddCallback(gizmo, XmNactivateCallback, textActivateCB, infoP);
- else if (gType == GIZMO_BUTTON)
- XtAddCallback(gizmo, XmNactivateCallback, gizmoGenCB, infoP);
-diff --git a/src/motif/MotifMainW.c b/src/motif/MotifMainW.c
-index abbb444..77ce8fd 100644
---- a/src/motif/MotifMainW.c
-+++ b/src/motif/MotifMainW.c
-@@ -80,8 +80,8 @@ checkPressOrExpose(Display *dpy, XEvent *eventP, XPointer arg)
- {
- Window *winP = (Window *) arg;
-
-- return eventP->type == ButtonPress && eventP->xbutton.window == *winP ||
-- eventP->type == Expose && eventP->xexpose.window == *winP;
-+ return (eventP->type == ButtonPress && eventP->xbutton.window == *winP) ||
-+ (eventP->type == Expose && eventP->xexpose.window == *winP);
- }
-
- static void
-diff --git a/src/os/GFile.c b/src/os/GFile.c
-index d0d63b6..08d48c7 100644
---- a/src/os/GFile.c
-+++ b/src/os/GFile.c
-@@ -385,7 +385,7 @@ GFileEOF(GFile gf)
- {
- if (gf->format == GF_FORMAT_MEMORY)
- return gf->currP == NULL ||
-- gf->currP->nextP == NULL && gf->currPos == gf->currP->len;
-+ (gf->currP->nextP == NULL && gf->currPos == gf->currP->len);
- else
- return feof(gf->fp);
- }
-diff --git a/src/prim/PrimDraw.c b/src/prim/PrimDraw.c
-index 32bd593..ba89c57 100644
---- a/src/prim/PrimDraw.c
-+++ b/src/prim/PrimDraw.c
-@@ -461,7 +461,7 @@ drawRibbon(PrimObjP primP)
- }
-
- if (partP->paint == RP_ATOM ||
-- partP->paint == RP_ATOM_SMOOTH && partP->polyNo > 0)
-+ (partP->paint == RP_ATOM_SMOOTH && partP->polyNo > 0))
- SgSetColor(attrP->colR, attrP->colG, attrP->colB);
-
- if (partP->paint == RP_ATOM_SMOOTH)
-diff --git a/src/prim/RibbonCalc.c b/src/prim/RibbonCalc.c
-index 09874cf..0849d03 100644
---- a/src/prim/RibbonCalc.c
-+++ b/src/prim/RibbonCalc.c
-@@ -907,7 +907,7 @@ calcStrips(PrimObjP primP, PrimObjP prevP)
- getSplinePoints(partP, ribbonP, ePar, partP->endPar, ePNo + 1,
- parA + sPNo + mPNo - 1, xA + sPNo + mPNo - 1, dzA + sPNo + mPNo - 1);
-
-- if (partP->style == RS_ROUND && partP->midRad == 0.0f ||
-+ if ((partP->style == RS_ROUND && partP->midRad == 0.0f) ||
- BreakInterrupted()) {
- /* draw only one line */
- partP->traceNo = 1;
-@@ -1128,15 +1128,15 @@ calcStrips(PrimObjP primP, PrimObjP prevP)
- Vec3Copy(partP->traceA[traceI].nvA[pointI], nv);
- }
-
-- if (pointI == 0 && partP->startStyle == RE_SHARP ||
-- pointI == pointNo - ePNo && partP->endStyle == RE_ARROW)
-+ if ((pointI == 0 && partP->startStyle == RE_SHARP) ||
-+ (pointI == pointNo - ePNo && partP->endStyle == RE_ARROW))
- Vec3Copy(partP->polyA[polyI].xA[traceNo - 1 - traceI], x);
- else if (pointI == pointNo - 1 && partP->endStyle == RE_SHARP)
- Vec3Copy(partP->polyA[polyI].xA[traceI], x);
- }
-
-- if (pointI == 0 && partP->startStyle == RE_SHARP ||
-- pointI == pointNo - ePNo && partP->endStyle == RE_ARROW) {
-+ if ((pointI == 0 && partP->startStyle == RE_SHARP) ||
-+ (pointI == pointNo - ePNo && partP->endStyle == RE_ARROW)) {
- Vec3Copy(x, dy);
- Vec3Cross(x, dx);
- Vec3Copy(partP->polyA[polyI].nv, x);
-@@ -1327,7 +1327,7 @@ RibbonCalc(PrimObjP primP)
-
- if (! partP->pointValid || prec != partP->prec ||
- startRad != partP->startRad ||
-- partP->style == RS_ROUND && midRad != partP->midRad ||
-+ (partP->style == RS_ROUND && midRad != partP->midRad) ||
- endRad != partP->endRad || radChanged) {
- for (i = 0; i < partP->traceNo; i++) {
- free(partP->traceA[i].xA);
-diff --git a/src/pudev/PuMainW.c b/src/pudev/PuMainW.c
-index 73d183b..d287345 100644
---- a/src/pudev/PuMainW.c
-+++ b/src/pudev/PuMainW.c
-@@ -57,7 +57,7 @@ PuSetTextField(PuTextFieldChoice fieldChoice, char *text)
- if (text[0] != LOCK_CHAR)
- return;
- text++;
-- if (text[0] == '\0' || text[0] == ' ' && text[1] == '\0') {
-+ if (text[0] == '\0' || (text[0] == ' ' && text[1] == '\0')) {
- StatusLocked = FALSE;
- text = " ";
- }
-diff --git a/src/tty/TTY.c b/src/tty/TTY.c
-index 0090f75..22adfef 100644
---- a/src/tty/TTY.c
-+++ b/src/tty/TTY.c
-@@ -164,7 +164,7 @@ PuTTYSwitchFullscreen(BOOL onOff)
- void
- PuTTYSetTextField(PuTextFieldChoice fieldChoice, char *text)
- {
-- if (text[0] == '\0' || text[0] == ' ' && text[1] == '\0')
-+ if (text[0] == '\0' || (text[0] == ' ' && text[1] == '\0'))
- return;
-
- switch (fieldChoice) {
-diff --git a/tools/src/IsoSurface.c b/tools/src/IsoSurface.c
-index 5e11a98..09f89d0 100644
---- a/tools/src/IsoSurface.c
-+++ b/tools/src/IsoSurface.c
-@@ -104,19 +104,19 @@ typedef struct {
- } Strip;
-
- static CubeDesc CubeEven = {
-- 0, 3, 5, 6, {{D_0, 1}, {D_0, 2}, {D_0, 3}, {D_0, 4}},
-- 3, 0, 5, 1, {{D_0, 0}, {D_MZ, 4}, {D_MY, 1}, {D_PX, 2}},
-- 0, 3, 6, 2, {{D_0, 0}, {D_MZ, 3}, {D_PY, 2}, {D_MX, 1}},
-- 3, 5, 6, 7, {{D_0, 0}, {D_PX, 3}, {D_PZ, 1}, {D_PY, 4}},
-- 5, 0, 6, 4, {{D_0, 0}, {D_MY, 3}, {D_MX, 4}, {D_PZ, 2}}
-+ {{0, 3, 5, 6, {{D_0, 1}, {D_0, 2}, {D_0, 3}, {D_0, 4}}},
-+ {3, 0, 5, 1, {{D_0, 0}, {D_MZ, 4}, {D_MY, 1}, {D_PX, 2}}},
-+ {0, 3, 6, 2, {{D_0, 0}, {D_MZ, 3}, {D_PY, 2}, {D_MX, 1}}},
-+ {3, 5, 6, 7, {{D_0, 0}, {D_PX, 3}, {D_PZ, 1}, {D_PY, 4}}},
-+ {5, 0, 6, 4, {{D_0, 0}, {D_MY, 3}, {D_MX, 4}, {D_PZ, 2}}}}
- };
-
- static CubeDesc CubeOdd = {
-- 1, 2, 7, 4, {{D_0, 1}, {D_0, 2}, {D_0, 3}, {D_0, 4}},
-- 2, 1, 7, 3, {{D_0, 0}, {D_MZ, 3}, {D_PX, 2}, {D_PY, 1}},
-- 1, 2, 4, 0, {{D_0, 0}, {D_MZ, 4}, {D_MX, 1}, {D_MY, 2}},
-- 2, 7, 4, 6, {{D_0, 0}, {D_PY, 4}, {D_PZ, 2}, {D_MX, 3}},
-- 7, 1, 4, 5, {{D_0, 0}, {D_PX, 4}, {D_MY, 3}, {D_PZ, 1}}
-+ {{1, 2, 7, 4, {{D_0, 1}, {D_0, 2}, {D_0, 3}, {D_0, 4}}},
-+ {2, 1, 7, 3, {{D_0, 0}, {D_MZ, 3}, {D_PX, 2}, {D_PY, 1}}},
-+ {1, 2, 4, 0, {{D_0, 0}, {D_MZ, 4}, {D_MX, 1}, {D_MY, 2}}},
-+ {2, 7, 4, 6, {{D_0, 0}, {D_PY, 4}, {D_PZ, 2}, {D_MX, 3}}},
-+ {7, 1, 4, 5, {{D_0, 0}, {D_PX, 4}, {D_MY, 3}, {D_PZ, 1}}}}
- };
-
- static BOOL Initialized = FALSE;
-@@ -158,7 +158,7 @@ fillFaces(TetDesc *tetP)
- static BOOL
- equalPair(int i00, int i01, int i10, int i11)
- {
-- return i00 == i10 && i01 == i11 || i00 == i11 && i01 == i10;
-+ return (i00 == i10 && i01 == i11) || (i00 == i11 && i01 == i10);
- }
-
- static int
diff --git a/sci-chemistry/molmol/files/opengl.patch b/sci-chemistry/molmol/files/opengl.patch
deleted file mode 100644
index c1db35d9013d..000000000000
--- a/sci-chemistry/molmol/files/opengl.patch
+++ /dev/null
@@ -1,96 +0,0 @@
- molmol | 65 +++++++++--------------------------------------------------------
- 1 file changed, 9 insertions(+), 56 deletions(-)
-
-diff --git a/molmol b/molmol
-index 7863225..b6c75ce 100755
---- a/molmol
-+++ b/molmol
-@@ -11,55 +11,8 @@ ostype=`uname`
- osrel=`uname -r`
- osmaj=`echo $osrel | awk -F. '{print $1}'`
- osmin=`echo $osrel | awk -F. '{print $2}'`
--localdev=
--glxdev=
--
--if [ $ostype = "IRIX" -o $ostype = "IRIX64" ]; then
-- if [ $osmaj -eq 6 -a $osmin -ge 2 -o $osmaj -gt 6 ]; then
-- arch=sgi6
-- localdev=Motif/OpenGL
-- glxdev=Motif/OpenGL
-- elif [ $osmaj -eq 5 -a $osmin -ge 3 -o $osmaj -gt 5 ]; then
-- arch=sgi5
-- localdev=Motif/OpenGL
-- glxdev=Motif/OpenGL
-- else
-- arch=sgi4
-- localdev=Motif/GL
-- fi
-- MONITOR=72HZ; export MONITOR
--elif [ $ostype = "AIX" ]; then
-- arch=aix
-- localdev=Motif/OpenGL
--elif [ $ostype = "HP-UX" ]; then
-- arch=hp
-- localdev=Motif/OpenGL
-- glxdev=Motif/OpenGL
--elif [ $ostype = "OSF1" ]; then
-- arch=dec
-- localdev=Motif/OpenGL
--elif [ $ostype = "Linux" ]; then
-- arch=lnx
-- localdev=Motif/OpenGL
--elif [ $ostype = "SunOS" ]; then
-- if [ $osmaj -eq 5 -a $osmin -ge 4 -o $osmaj -gt 5 ]; then
-- arch=sol
-- localdev=Motif/OpenGL
-- else
-- arch=sun
-- fi
--else
-- arch=unknown
--fi
--
--if [ $ostype = "SunOS" ]; then
-- xdpy=/usr/openwin/bin/xdpyinfo
--elif [ $ostype = "HP-UX" ]; then
-- xdpy=/usr/contrib/bin/X11/xdpyinfo
--else
-- xdpy=/usr/bin/X11/xdpyinfo
--fi
--
-+localdev=Motif/OpenGL
-+glxdev=Motif/OpenGL
- printUsage () {
- echo "Usage: molmol -ht2as [-o dev] [-r range] [-f macro] files"
- echo ""
-@@ -121,15 +74,15 @@ done
-
- magictmp=/tmp/molmol_magic$$
-
--if [ ! -d $HOME/molmol ]; then
-- mkdir $HOME/molmol
-+if [ ! -d $HOME/.molmol ]; then
-+ mkdir $HOME/.molmol
- fi
--startmacro=$HOME/molmol/options.mac
-+startmacro=$HOME/.molmol/options.mac
- cp /dev/null $startmacro
-
- if [ -n "$*" ]; then
-- if [ -f $HOME/molmol/dump ]; then
-- mv -f $HOME/molmol/dump $HOME/molmol/dump.old
-+ if [ -f $HOME/.molmol/dump ]; then
-+ mv -f $HOME/.molmol/dump $HOME/.molmol/dump.old
- fi
- echo "0 long 0x3b7a12f9 MOLMOL" > $magictmp
- echo "0 long 0xf9127a3b MOLMOL" >> $magictmp
-@@ -209,7 +162,7 @@ elif [ -x $xdpy ]; then
- fi
-
- if [ "$input" = "-" -o -n "$nograph" ]; then
-- $MOLMOLHOME/molmol.$arch $xopt
-+ $MOLMOLHOME/molmol $xopt
- else
-- $MOLMOLHOME/molmol.$arch $xopt < /dev/null
-+ $MOLMOLHOME/molmol $xopt < /dev/null
- fi
diff --git a/sci-chemistry/molmol/files/pjf_RH9_molmol2k2.diff b/sci-chemistry/molmol/files/pjf_RH9_molmol2k2.diff
deleted file mode 100644
index 0ad57d93e107..000000000000
--- a/sci-chemistry/molmol/files/pjf_RH9_molmol2k2.diff
+++ /dev/null
@@ -1,103 +0,0 @@
-Only in molmol_rh9: makedef
-diff -ru molmol_rh9_unpatched/makedef.lnx molmol_rh9/makedef.lnx
---- molmol_rh9_unpatched/makedef.lnx 2003-01-20 16:10:18.000000000 -0500
-+++ molmol_rh9/makedef.lnx 2003-05-06 10:40:08.000000000 -0400
-@@ -1,31 +1,38 @@
- # definitions for Linux
-
--MISSFUNC = -Dsqrtf=sqrt -Dexpf=exp -Dlogf=log -Dpowf=pow \
-- -Dsinf=sin -Dcosf=cos -Dtanf=tan \
-- -Dasinf=asin -Dacosf=acos -Datanf=atan -Datan2f=atan2 \
-- -Dfabsf=fabs -Dceilf=ceil
--MCPPFLAGS = $(MISSFUNC)
--MCFLAGS = -O2
--
--RANLIB = /bin/true
--WAIT = /usr/bin/sleep 2
--SHELL = /bin/sh
--CPP = /lib/cpp
--CC = /usr/bin/gcc
-+#TIFFDIR = $(TOP)/tiff-v3.4/libtiff
-+#JPEGDIR = $(TOP)/../libjpeg/jpeg-6a
-+#PNGDIR = $(TOP)/../libpng/libpng-0.89c
-+#ZLIBDIR = $(TOP)/../libpng/zlib-1.0.2
-+
-+IMGDEF = -DTIFF_SUPPORT -DJPEG_SUPPORT -DPNG_SUPPORT
-+IMGLIB = -ltiff -ljpeg -lpng -lz
-+IMGINCL = # -I$(TIFFDIR) -I$(JPEGDIR) -I$(PNGDIR) -I$(ZLIBDIR)
-+
-+XINCL = -I/usr/X11R6/include
-+
-+CC=gcc
-+MCPPFLAGS =
-+MCFLAGS =-pipe -O3 -ffast-math -march=i686 -mcpu=i686
-+
-+RANLIB = /bin/true
-+WAIT = sleep 2
-+SHELL = /bin/sh
-+CPP = /lib/cpp
-
--SGDEVDIR = x11 no pov rib vrml1 vrml2 ps fm
--
--SGDEVDEF = -DSG_DEV_X11 -DSG_DEV_NO -DSG_DEV_POV -DSG_DEV_RIB -DSG_DEV_VRML1 -DSG_DEV_VRML2 -DSG_DEV_PS -DSG_DEV_CPS -DSG_DEV_FM3 -DSG_DEV_FM4
-+SGDEVDIR = ogl x11 no pov rib vrml1 vrml2 ps fm
-+SGDEVDEF = -DSG_DEV_OGL -DSG_DEV_X11 -DSG_DEV_NO -DSG_DEV_POV -DSG_DEV_RIB -DSG_DEV_VRML1 -DSG_DEV_VRML2 -DSG_DEV_PS -DSG_DEV_CPS -DSG_DEV_FM3 -DSG_DEV_FM4
-
- PUDEVDIR = motif tty
- PUDEVDEF = -DPU_DEV_MOTIF -DPU_DEV_TTY
-
--IODEVDIR = motx11 ttyno
--IODEVDEF = -DIO_DEV_MOTIF_X11 -DIO_DEV_TTY_NO
-+IODEVDIR = motogl motx11 ttyno
-+IODEVDEF = -DIO_DEV_MOTIF_OGL -DIO_DEV_MOTIF_X11 -DIO_DEV_TTY_NO
-
-+OPENGLDEF = -DOPENGL_SGI_STEREO
- MOTIFDEF = -DFUNCPROTO
-
--SYSLIB = -L/usr/X11R6/lib -lXm -lXt -lXpm -lX11 -lm -lc -lieee
-+SYSLIB = -lGLw -lGLU -lGL -lXm -lXpm -lXt -lXext -lX11 -lm
-
- TOOLSDIR = $(TOP)/tools
--SGDIR = $(TOP)/sg
-+SGDIR = $(TOP)/sg
-diff -ru molmol_rh9_unpatched/src/motogl/MotOGL.c molmol_rh9/src/motogl/MotOGL.c
---- molmol_rh9_unpatched/src/motogl/MotOGL.c 2000-05-29 12:31:51.000000000 -0400
-+++ molmol_rh9/src/motogl/MotOGL.c 2003-05-06 11:51:05.000000000 -0400
-@@ -31,7 +31,7 @@
- #include <Xm/XmStrDefs.h>
-
- #define BOOL MOTIF_BOOL /* hack to avoid naming conflict */
--#include <X11/GLw/GLwMDrawA.h>
-+#include <GL/GLwMDrawA.h>
- #undef BOOL
-
- #include <sg.h>
-diff -ru molmol_rh9_unpatched/src/os/GFile.c molmol_rh9/src/os/GFile.c
---- molmol_rh9_unpatched/src/os/GFile.c 2001-06-17 14:59:17.000000000 -0400
-+++ molmol_rh9/src/os/GFile.c 2003-05-06 12:34:34.000000000 -0400
-@@ -30,6 +30,7 @@
- #include <string.h>
- #include <memory.h>
- #include <ctype.h>
-+#include <errno.h>
-
- #include <linlist.h>
-
-@@ -38,7 +39,7 @@
- const INT32 GFMagic = 0x3b7a12f9;
-
- #ifndef __linux__
--extern char *sys_errlist[];
-+extern char *strerror();
- #endif
- extern int errno;
-
-@@ -81,7 +82,7 @@
- {
- if (msg == NULL) {
- if (NextMsg == NULL)
-- msg = sys_errlist[errno];
-+ msg = strerror(errno);
- else
- msg = NextMsg;
- }
diff --git a/sci-chemistry/molmol/files/prefix.patch b/sci-chemistry/molmol/files/prefix.patch
deleted file mode 100644
index 89f17b2e984e..000000000000
--- a/sci-chemistry/molmol/files/prefix.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/molmol b/molmol
-index e774abf..9f10558 100755
---- a/molmol
-+++ b/molmol
-@@ -57,7 +57,7 @@ if [ $ostype = "SunOS" ]; then
- elif [ $ostype = "HP-UX" ]; then
- xdpy=/usr/contrib/bin/X11/xdpyinfo
- else
-- xdpy=/usr/bin/X11/xdpyinfo
-+ xdpy=@GENTOO_PORTAGE_EPREFIX@/usr/bin/xdpyinfo
- fi
-
- printUsage () {
-@@ -119,7 +119,7 @@ while [ -n "$*" ]; do
- esac
- done
-
--magictmp=/tmp/molmol_magic$$
-+magictmp=@GENTOO_PORTAGE_EPREFIX@/tmp/molmol_magic$$
-
- if [ ! -d $HOME/molmol ]; then
- mkdir $HOME/molmol
diff --git a/sci-chemistry/molmol/files/wild.patch b/sci-chemistry/molmol/files/wild.patch
deleted file mode 100644
index 8be9baf92203..000000000000
--- a/sci-chemistry/molmol/files/wild.patch
+++ /dev/null
@@ -1,1866 +0,0 @@
- include/cmd_dial.h | 1 +
- include/cmd_io.h | 7 +-
- include/cmd_struc.h | 1 +
- include/curr_dir.h | 1 +
- include/data_hand.h | 6 +
- src/cip/cmd_tab.h | 3 +
- src/cmddial/ExDialColor.c | 314 +++++++++++++++++++++++++++++++-----------
- src/cmddial/ExDialRes.c | 340 ++++++++++++++++++++++++++++++++++++++++++++++
- src/cmddial/Makefile | 2 +-
- src/cmdio/ExPdb.c | 70 +++++++++-
- src/cmdstruc/ExBuild.c | 123 +++++++++++++++++
- src/data/DataHand.c | 114 +++++++++++++++-
- src/iodev/IODev.c | 2 +
- src/main/MolInit.c | 5 +-
- src/main/MolMol.c | 2 +-
- src/motif/MotifDial.c | 32 ++---
- src/motogl/MotOGLDump.c | 2 +-
- src/os/CurrDir.c | 46 ++-----
- src/os/ProgDir.c | 25 +++-
- src/win/WinDial.c | 255 +++++++++++++++++-----------------
- src/winogl/WinOGLDump.c | 7 +-
- 21 files changed, 1073 insertions(+), 285 deletions(-)
-
-diff --git a/include/cmd_dial.h b/include/cmd_dial.h
-index f60e918..47fb8f8 100644
---- a/include/cmd_dial.h
-+++ b/include/cmd_dial.h
-@@ -29,6 +29,7 @@ extern ErrCode ExUserInterface(char *);
-
- extern ErrCode ExDialColor(char *);
- extern ErrCode ExDialMol(char *);
-+extern ErrCode ExDialRes(char *);
- extern ErrCode ExDialMeasure(char *);
- extern ErrCode ExDialRmsd(char *);
- extern ErrCode ExDialSelect(char *);
-diff --git a/include/cmd_io.h b/include/cmd_io.h
-index 79b173c..9a7b12c 100644
---- a/include/cmd_io.h
-+++ b/include/cmd_io.h
-@@ -30,15 +30,16 @@ extern ErrCode ExReadAng(char *);
- extern ErrCode ExReadDg(char *);
- extern ErrCode ExReadDump(char *);
- extern ErrCode ExReadLib(char *);
--extern ErrCode ExReadPdb(char *);
--extern ErrCode ExReadSeq(char *);
--extern ErrCode ExReadShift(char *);
- extern ErrCode ExReadLimit(char *);
- extern ErrCode ExReadListAng(char *);
- extern ErrCode ExReadListDg(char *);
- extern ErrCode ExReadListPdb(char *);
-+extern ErrCode ExReadOldPdb(char *);
- extern ErrCode ExReadOmap(char *);
-+extern ErrCode ExReadPdb(char *);
- extern ErrCode ExReadPot(char *);
-+extern ErrCode ExReadSeq(char *);
-+extern ErrCode ExReadShift(char *);
- extern ErrCode ExReadSybyl(char *);
- extern ErrCode ExReadXyz(char *);
- extern ErrCode ExWriteAng(char *);
-diff --git a/include/cmd_struc.h b/include/cmd_struc.h
-index e0d729f..f4950b9 100644
---- a/include/cmd_struc.h
-+++ b/include/cmd_struc.h
-@@ -33,6 +33,7 @@ extern ErrCode ExAddDist(char *);
- extern ErrCode ExAddLimit(char *);
- extern ErrCode ExAddPseudo(char *);
- extern ErrCode ExAddRes(char *);
-+extern ErrCode ExMakeMolCyclic(char *);
- extern ErrCode ExChangeRes(char *);
- extern ErrCode ExFirstMol(char *);
- extern ErrCode ExFlipAtom(char *);
-diff --git a/include/curr_dir.h b/include/curr_dir.h
-index c7895c4..04e404d 100644
---- a/include/curr_dir.h
-+++ b/include/curr_dir.h
-@@ -26,6 +26,7 @@
- #ifndef _CURR_DIR_H_
- #define _CURR_DIR_H_
-
-+extern void CurrDirSet(char *dir);
- extern char *CurrDirGet(void);
-
- #endif /* _CURR_DIR_H_ */
-diff --git a/include/data_hand.h b/include/data_hand.h
-index 4462328..74a716a 100644
---- a/include/data_hand.h
-+++ b/include/data_hand.h
-@@ -112,6 +112,7 @@ extern void DhMolMoveFirst(DhMolP);
- extern void DhMolDestroy(DhMolP);
-
- extern DhResP DhResNew(DhMolP, DhResDefP, DhSeqPos);
-+extern DhResP DhResNewCyclic(DhMolP, DhResDefP, DhSeqPos);
- extern void DhResMutate(DhResP, DhResDefP, DhMutationKind);
- extern void DhResSetNeigh(DhResP, DhNeighChoice, DhResP);
- extern BOOL DhResDestroy(DhResP);
-@@ -287,6 +288,7 @@ extern void DhMolGetTransVect(DhMolP, Vec3);
- extern MolAttrP DhMolGetAttr(DhMolP);
-
- extern DSTR DhResGetName(DhResP);
-+extern DhAtomP DhResGetAtomA(DhResP);
- extern int DhResGetNumber(DhResP);
-
- extern DSTR DhAtomGetName(DhAtomP);
-@@ -335,6 +337,10 @@ extern void DhResAnglesChanged(DhResP);
- extern void DhResDockPrev(DhResP);
- extern void DhResDockNext(DhResP);
- extern void DhResCalcAtom(DhResP, DSTR);
-+extern DhResP DhResPrev(DhResP resP);
-+extern DhResP DhResNext(DhResP resP);
-+extern DhResP DhResFirst(DhMolP molP);
-+extern DhResP DhResLast(DhMolP molP);
-
- /* dump/undump */
-
-diff --git a/src/cip/cmd_tab.h b/src/cip/cmd_tab.h
-index 0b73f65..cf7bc2a 100644
---- a/src/cip/cmd_tab.h
-+++ b/src/cip/cmd_tab.h
-@@ -108,6 +108,7 @@ static CmdTabEntry BuiltinCmdTab[] = {
- {"DialColor", ExDialColor, US_NONE},
- {"DialMeasure", ExDialMeasure, US_NONE},
- {"DialMol", ExDialMol, US_NONE},
-+ {"DialRes", ExDialRes, US_NONE},
- {"DialRmsd", ExDialRmsd, US_NONE},
- {"DialSelect", ExDialSelect, US_NONE},
- {"DialStyle", ExDialStyle, US_NONE},
-@@ -164,6 +165,7 @@ static CmdTabEntry BuiltinCmdTab[] = {
- {"ListSelectedDist", ExListSelected, US_NONE},
- {"ListSelectedMol", ExListSelected, US_NONE},
- {"ListSelectedRes", ExListSelected, US_NONE},
-+ {"MakeMolCyclic", ExMakeMolCyclic, US_ALL},
- {"MaterialAtom", ExMaterial, US_ALL},
- {"MaterialBond", ExMaterial, US_ALL},
- {"MaterialDist", ExMaterial, US_ALL},
-@@ -213,6 +215,7 @@ static CmdTabEntry BuiltinCmdTab[] = {
- {"ReadListDg", ExReadListDg, US_ALL},
- {"ReadListPdb", ExReadListPdb, US_ALL},
- {"ReadLol", ExReadLimit, US_ALL},
-+ {"ReadOldPdb", ExReadOldPdb, US_ALL},
- {"ReadOmap", ExReadOmap, US_ALL},
- {"ReadPdb", ExReadPdb, US_ALL},
- {"ReadPot", ExReadPot, US_ALL},
-diff --git a/src/cmddial/ExDialColor.c b/src/cmddial/ExDialColor.c
-index f960e1d..e827c4f 100644
---- a/src/cmddial/ExDialColor.c
-+++ b/src/cmddial/ExDialColor.c
-@@ -43,6 +43,9 @@
- #define NAME_LEN 100
- #define NUM_LEN 6
- #define CMD_NO 7
-+#define MAXRGBVALUE 255
-+#define ICOLOR(c) (int) ((float)c * (float)MAXRGBVALUE)
-+#define FCOLOR(c) (float) ((float)c / (float)MAXRGBVALUE)
-
- #define EPS ((float) 1.0e-5)
-
-@@ -56,8 +59,8 @@ typedef struct {
- static ColorDesc *ColorList;
- static int ColorNo = 0;
- static BOOL DialOn = FALSE;
--static PuGizmo DialGizmo = NULL, NameGizmo, RGizmo, GGizmo, BGizmo, ColGizmo;
--static DSTR NameStr = NULL, RStr, GStr, BStr;
-+static PuGizmo DialGizmo = NULL, NameGizmo, RGizmo, GGizmo, BGizmo, ColGizmo, rGizmo, gGizmo, bGizmo;
-+static DSTR NameStr = NULL, RStr, GStr, BStr, rStr, gStr, bStr;
-
- static char *LabelList[] = {
- "Back",
-@@ -136,22 +139,50 @@ editCB(PuGizmo g, char *name, void *clientData, void *callData)
- char *field = clientData;
- PuTextCBStruc *callP = callData;
-
-- if (field[0] == 'N')
-+ if (field[0] == 'N') {
- DStrAssignStr(NameStr, callP->newText);
-- else if (field[0] == 'R')
-+ }
-+ else if (field[0] == 'R') {
- DStrAssignStr(RStr, callP->newText);
-- else if (field[0] == 'G')
-+ }
-+ else if (field[0] == 'G') {
- DStrAssignStr(GStr, callP->newText);
-- else
-+ }
-+ else if (field[0] == 'B') {
- DStrAssignStr(BStr, callP->newText);
-+ }
-+ else if (field[0] == 'r') {
-+ DStrAssignStr(rStr, callP->newText);
-+ }
-+ else if (field[0] == 'g') {
-+ DStrAssignStr(gStr, callP->newText);
-+ }
-+ else if (field[0] == 'b') {
-+ DStrAssignStr(bStr, callP->newText);
-+ }
- }
-
- static void
- updateFields(int colorI)
- {
-+ char buf[10];
-+ float f;
-+
- PuSetStr(RGizmo, PU_SC_TEXT, ColorList[colorI].r);
- PuSetStr(GGizmo, PU_SC_TEXT, ColorList[colorI].g);
- PuSetStr(BGizmo, PU_SC_TEXT, ColorList[colorI].b);
-+
-+ f = atof(ColorList[colorI].r);
-+ (void) sprintf(buf, "%i", ICOLOR(f));
-+ PuSetStr(rGizmo, PU_SC_TEXT, buf);
-+
-+ f = atof(ColorList[colorI].g);
-+ (void) sprintf(buf, "%i", ICOLOR(f));
-+ PuSetStr(gGizmo, PU_SC_TEXT, buf);
-+
-+ f = atof(ColorList[colorI].b);
-+ (void) sprintf(buf, "%i", ICOLOR(f));
-+ PuSetStr(bGizmo, PU_SC_TEXT, buf);
- }
-
- static void
-@@ -190,17 +221,96 @@ activateCB(PuGizmo g, char *name, void *clientData, void *callData)
- {
- char *field = clientData;
- int i;
-+ float f;
-+ char buf[10];
-
- if (field[0] == 'N') {
- for (i = 0; i < ColorNo; i++)
- if (strcmp(ColorList[i].name, DStrToStr(NameStr)) == 0) {
-- updateFields(i);
-- break;
-+ updateFields(i);
-+ break;
- }
- } else {
-+ if (field[0] == 'R') {
-+ f = atof(DStrToStr(RStr));
-+ if (f>1.0) {
-+ f=1.0;
-+ i=MAXRGBVALUE;
-+ sprintf(buf,"%1.3f", FCOLOR(i));
-+ DStrAssignStr(RStr, buf);
-+ PuSetStr(RGizmo, PU_SC_TEXT, buf);
-+ }
-+ sprintf(buf,"%i", ICOLOR(f));
-+ DStrAssignStr(rStr, buf);
-+ PuSetStr(rGizmo, PU_SC_TEXT, buf);
-+ }
-+ else if (field[0] == 'G') {
-+ f = atof(DStrToStr(GStr));
-+ if (f>1.0) {
-+ f=1.0;
-+ i=MAXRGBVALUE;
-+ sprintf(buf,"%1.3f", FCOLOR(i));
-+ DStrAssignStr(GStr, buf);
-+ PuSetStr(GGizmo, PU_SC_TEXT, buf);
-+ }
-+ sprintf(buf,"%i", ICOLOR(f));
-+ DStrAssignStr(gStr, buf);
-+ PuSetStr(gGizmo, PU_SC_TEXT, buf);
-+ }
-+ else if (field[0] == 'B') {
-+ f = atof(DStrToStr(BStr));
-+ if (f>1.0) {
-+ f=1.0;
-+ i=MAXRGBVALUE;
-+ sprintf(buf,"%1.3f", FCOLOR(i));
-+ DStrAssignStr(BStr, buf);
-+ PuSetStr(BGizmo, PU_SC_TEXT, buf);
-+ }
-+ sprintf(buf,"%i", ICOLOR(f));
-+ DStrAssignStr(bStr, buf);
-+ PuSetStr(bGizmo, PU_SC_TEXT, buf);
-+ }
-+ else if (field[0] == 'r') {
-+ i = atoi(DStrToStr(rStr));
-+ if (i>MAXRGBVALUE) {
-+ f=1.0;
-+ i=MAXRGBVALUE;
-+ sprintf(buf,"%i", ICOLOR(f));
-+ DStrAssignStr(rStr, buf);
-+ PuSetStr(rGizmo, PU_SC_TEXT, buf);
-+ }
-+ sprintf(buf,"%1.3f", FCOLOR(i));
-+ DStrAssignStr(RStr, buf);
-+ PuSetStr(RGizmo, PU_SC_TEXT, buf);
-+ }
-+ else if (field[0] == 'g') {
-+ i = atoi(DStrToStr(gStr));
-+ if (i>MAXRGBVALUE) {
-+ f=1.0;
-+ i=MAXRGBVALUE;
-+ sprintf(buf,"%i", ICOLOR(f));
-+ DStrAssignStr(gStr, buf);
-+ PuSetStr(gGizmo, PU_SC_TEXT, buf);
-+ }
-+ sprintf(buf,"%1.3f", FCOLOR(i));
-+ DStrAssignStr(GStr, buf);
-+ PuSetStr(GGizmo, PU_SC_TEXT, buf);
-+ }
-+ else if (field[0] == 'b') {
-+ i = atoi(DStrToStr(bStr));
-+ if (i>MAXRGBVALUE) {
-+ f=1.0;
-+ i=MAXRGBVALUE;
-+ sprintf(buf,"%i", ICOLOR(f));
-+ DStrAssignStr(bStr, buf);
-+ PuSetStr(bGizmo, PU_SC_TEXT, buf);
-+ }
-+ sprintf(buf,"%1.3f", FCOLOR(i));
-+ DStrAssignStr(BStr, buf);
-+ PuSetStr(BGizmo, PU_SC_TEXT, buf);
-+ }
- showName();
- }
--
- showColor();
- }
-
-@@ -258,13 +368,20 @@ showAttr(AttrP attrP)
- {
- char buf[10];
-
-- (void) sprintf(buf, "%5.3f", attrP->colR);
-+ (void) sprintf(buf, "%1.3f", attrP->colR);
- PuSetStr(RGizmo, PU_SC_TEXT, buf);
-- (void) sprintf(buf, "%5.3f", attrP->colG);
-+ (void) sprintf(buf, "%1.3f", attrP->colG);
- PuSetStr(GGizmo, PU_SC_TEXT, buf);
-- (void) sprintf(buf, "%5.3f", attrP->colB);
-+ (void) sprintf(buf, "%1.3f", attrP->colB);
- PuSetStr(BGizmo, PU_SC_TEXT, buf);
-
-+ (void) sprintf(buf, "%i", ICOLOR(attrP->colR));
-+ PuSetStr(rGizmo, PU_SC_TEXT, buf);
-+ (void) sprintf(buf, "%i", ICOLOR(attrP->colG));
-+ PuSetStr(gGizmo, PU_SC_TEXT, buf);
-+ (void) sprintf(buf, "%i", ICOLOR(attrP->colB));
-+ PuSetStr(bGizmo, PU_SC_TEXT, buf);
-+
- showName();
- showColor();
- }
-@@ -315,107 +432,152 @@ buildDial(void)
- PuGizmo g;
- PuConstraints con;
- int i;
--
-- DialGizmo = PuCreateDialog("Color Dialog", 7, 5);
-- PuSetBool(DialGizmo, PU_BC_PLACE_OUTSIDE, TRUE);
--
-- con.x = 0;
-- con.w = 1;
-- con.h = 1;
--
-- g = PuCreateLabel(DialGizmo, "Name");
-- con.y = 0;
-- PuSetConstraints(g, con);
-- PuSwitchGizmo(g, TRUE);
--
-- g = PuCreateLabel(DialGizmo, "Red");
-- con.y = 1;
-- PuSetConstraints(g, con);
-- PuSwitchGizmo(g, TRUE);
--
-- g = PuCreateLabel(DialGizmo, "Green");
-- con.y = 2;
-- PuSetConstraints(g, con);
-- PuSwitchGizmo(g, TRUE);
--
-- g = PuCreateLabel(DialGizmo, "Blue");
-- con.y = 3;
-- PuSetConstraints(g, con);
-- PuSwitchGizmo(g, TRUE);
--
-- con.x = 1;
-- con.w = 2;
-- con.h = 1;
--
- NameStr = DStrNew();
-+
- RStr = DStrNew();
- GStr = DStrNew();
- BStr = DStrNew();
-+ rStr = DStrNew();
-+ gStr = DStrNew();
-+ bStr = DStrNew();
-+
- DStrAssignStr(RStr, "0.0");
- DStrAssignStr(GStr, "0.0");
- DStrAssignStr(BStr, "0.0");
-+ DStrAssignStr(rStr, "0");
-+ DStrAssignStr(gStr, "0");
-+ DStrAssignStr(bStr, "0");
-
-+ DialGizmo = PuCreateDialog("Color Dialog", 3, 20);
-+ PuSetBool(DialGizmo, PU_BC_PLACE_OUTSIDE, TRUE);
-+
-+ con.x = 1;
-+ con.y = 0;
-+ con.w = 2;
-+ con.h = 3;
-+ ColGizmo = PuCreateColorField(DialGizmo, "Color");
-+ PuSetConstraints(ColGizmo, con);
-+ PuSetConstraints(ColGizmo, con);
-+ showColor();
-+ PuSwitchGizmo(ColGizmo, TRUE);
-+
-+ con.x = 0;
-+ con.y = 4;
-+ con.w = 1;
-+ con.h = 1;
-+ g = PuCreateLabel(DialGizmo, "Name");
-+ PuSetConstraints(g, con);
-+ PuSwitchGizmo(g, TRUE);
-+ con.x = 1;
-+ con.w = 2;
-+ con.h = 1;
- NameGizmo = PuCreateTextField(DialGizmo, "Name", DStrToStr(NameStr));
-- con.y = 0;
- PuSetConstraints(NameGizmo, con);
-- PuSetInt(NameGizmo, PU_IC_TEXT_WIDTH, 13);
-+ PuSetInt(NameGizmo, PU_IC_TEXT_WIDTH, 10);
- PuAddGizmoCB(NameGizmo, PU_CT_MODIFY, editCB, "N", NULL);
- PuAddGizmoCB(NameGizmo, PU_CT_ACTIVATE, activateCB, "N", NULL);
- showName();
- PuSwitchGizmo(NameGizmo, TRUE);
-
-- RGizmo = PuCreateTextField(DialGizmo, "Red", DStrToStr(RStr));
-- con.y = 1;
-+ con.x = 1;
-+ con.y = 5;
-+ con.w = 2;
-+ con.h = 5;
-+ g = PuCreateList(DialGizmo, "Color List");
-+ for (i = 0; i < ColorNo; i++)
-+ PuAddListEntry(g, ColorList[i].name, FALSE);
-+ PuSetConstraints(g, con);
-+ PuSetBool(g, PU_BC_AUTO_DESEL, TRUE);
-+ PuAddGizmoCB(g, PU_CT_SELECT, selectCB, NULL, NULL);
-+ PuSwitchGizmo(g, TRUE);
-+
-+ con.x = 1;
-+ con.y = 11;
-+ con.w = 1;
-+ con.h = 1;
-+ g = PuCreateLabel(DialGizmo, "Float");
-+ PuSetConstraints(g, con);
-+ PuSwitchGizmo(g, TRUE);
-+ con.x = 2;
-+ con.y = 11;
-+ g = PuCreateLabel(DialGizmo, "RGB");
-+ PuSetConstraints(g, con);
-+ PuSwitchGizmo(g, TRUE);
-+
-+ con.x = 0;
-+ con.y = 12;
-+ con.w = 1;
-+ con.h = 1;
-+ g = PuCreateLabel(DialGizmo, "Red");
-+ PuSetConstraints(g, con);
-+ PuSwitchGizmo(g, TRUE);
-+ con.x = 1;
-+ RGizmo = PuCreateTextField(DialGizmo, "RED", DStrToStr(RStr));
- PuSetConstraints(RGizmo, con);
- PuSetInt(RGizmo, PU_IC_TEXT_WIDTH, NUM_LEN);
- PuAddGizmoCB(RGizmo, PU_CT_MODIFY, editCB, "R", NULL);
- PuAddGizmoCB(RGizmo, PU_CT_ACTIVATE, activateCB, "R", NULL);
- PuSwitchGizmo(RGizmo, TRUE);
-+ con.x = 2;
-+ rGizmo = PuCreateTextField(DialGizmo, "red", DStrToStr(rStr));
-+ PuSetConstraints(rGizmo, con);
-+ PuSetInt(rGizmo, PU_IC_TEXT_WIDTH, NUM_LEN);
-+ PuAddGizmoCB(rGizmo, PU_CT_MODIFY, editCB, "r", NULL);
-+ PuAddGizmoCB(rGizmo, PU_CT_ACTIVATE, activateCB, "r", NULL);
-+ PuSwitchGizmo(rGizmo, TRUE);
-
-- GGizmo = PuCreateTextField(DialGizmo, "Green", DStrToStr(GStr));
-- con.y = 2;
-+ con.x = 0;
-+ con.y = 13;
-+ con.w = 1;
-+ con.h = 1;
-+ g = PuCreateLabel(DialGizmo, "Green");
-+ PuSetConstraints(g, con);
-+ PuSwitchGizmo(g, TRUE);
-+ con.x = 1;
-+ GGizmo = PuCreateTextField(DialGizmo, "GREEN", DStrToStr(GStr));
- PuSetConstraints(GGizmo, con);
- PuSetInt(GGizmo, PU_IC_TEXT_WIDTH, NUM_LEN);
- PuAddGizmoCB(GGizmo, PU_CT_MODIFY, editCB, "G", NULL);
- PuAddGizmoCB(GGizmo, PU_CT_ACTIVATE, activateCB, "G", NULL);
- PuSwitchGizmo(GGizmo, TRUE);
-+ con.x = 2;
-+ gGizmo = PuCreateTextField(DialGizmo, "green", DStrToStr(gStr));
-+ PuSetConstraints(gGizmo, con);
-+ PuSetInt(gGizmo, PU_IC_TEXT_WIDTH, NUM_LEN);
-+ PuAddGizmoCB(gGizmo, PU_CT_MODIFY, editCB, "g", NULL);
-+ PuAddGizmoCB(gGizmo, PU_CT_ACTIVATE, activateCB, "g", NULL);
-+ PuSwitchGizmo(gGizmo, TRUE);
-
-- BGizmo = PuCreateTextField(DialGizmo, "Blue", DStrToStr(BStr));
-- con.y = 3;
-+ con.x = 0;
-+ con.y = 14;
-+ con.w = 1;
-+ con.h = 1;
-+ g = PuCreateLabel(DialGizmo, "Blue");
-+ PuSetConstraints(g, con);
-+ PuSwitchGizmo(g, TRUE);
-+ con.x = 1;
-+ BGizmo = PuCreateTextField(DialGizmo, "BLUE", DStrToStr(BStr));
- PuSetConstraints(BGizmo, con);
- PuSetInt(BGizmo, PU_IC_TEXT_WIDTH, NUM_LEN);
- PuAddGizmoCB(BGizmo, PU_CT_MODIFY, editCB, "B", NULL);
- PuAddGizmoCB(BGizmo, PU_CT_ACTIVATE, activateCB, "B", NULL);
- PuSwitchGizmo(BGizmo, TRUE);
-+ con.x = 2;
-+ bGizmo = PuCreateTextField(DialGizmo, "blue", DStrToStr(bStr));
-+ PuSetConstraints(bGizmo, con);
-+ PuSetInt(bGizmo, PU_IC_TEXT_WIDTH, NUM_LEN);
-+ PuAddGizmoCB(bGizmo, PU_CT_MODIFY, editCB, "b", NULL);
-+ PuAddGizmoCB(bGizmo, PU_CT_ACTIVATE, activateCB, "b", NULL);
-+ PuSwitchGizmo(bGizmo, TRUE);
-
-- ColGizmo = PuCreateColorField(DialGizmo, "Color");
-- con.x = 3;
-- con.y = 0;
-- con.w = 2;
-- con.h = 4;
-- PuSetConstraints(ColGizmo, con);
-- showColor();
-- PuSwitchGizmo(ColGizmo, TRUE);
--
-- g = PuCreateList(DialGizmo, "Color List");
-- for (i = 0; i < ColorNo; i++)
-- PuAddListEntry(g, ColorList[i].name, FALSE);
-- con.x = 5;
-- con.y = 0;
-- con.w = 2;
-- con.h = 4;
-- PuSetConstraints(g, con);
-- PuSetBool(g, PU_BC_AUTO_DESEL, TRUE);
-- PuAddGizmoCB(g, PU_CT_SELECT, selectCB, NULL, NULL);
-- PuSwitchGizmo(g, TRUE);
--
-- con.y = 4;
-+ con.x = 0;
-+ con.y = 15;
- con.w = 1;
- con.h = 1;
--
- for (i = 0; i < CMD_NO; i++) {
- g = PuCreateButton(DialGizmo, LabelList[i]);
-- con.x = i;
-+ con.x = i%3;
-+ if (i%3 == 0) con.y++;
- PuSetConstraints(g, con);
- PuAddGizmoCB(g, PU_CT_ACTIVATE, cmdCB, NULL, NULL);
- PuSwitchGizmo(g, TRUE);
-diff --git a/src/cmddial/ExDialRes.c b/src/cmddial/ExDialRes.c
-new file mode 100644
-index 0000000..06925ff
---- /dev/null
-+++ b/src/cmddial/ExDialRes.c
-@@ -0,0 +1,340 @@
-+/*
-+************************************************************************
-+*
-+* ExDialMol.c - DialMol command
-+*
-+* Copyright (c) 1994-98
-+*
-+* ETH Zuerich
-+* Institut fuer Molekularbiologie und Biophysik
-+* ETH-Hoenggerberg
-+* CH-8093 Zuerich
-+*
-+* SPECTROSPIN AG
-+* Industriestr. 26
-+* CH-8117 Faellanden
-+*
-+* All Rights Reserved
-+*
-+* Date of last modification : 98/08/17
-+* Pathname of SCCS file : /tmp_mnt/net/sn/homeb/rkoradi/molmol-master/src/cmddial/SCCS/s.ExDialMol.c
-+* SCCS identification : 1.10
-+*
-+************************************************************************
-+*/
-+
-+#include <cmd_dial.h>
-+
-+#include <stdio.h>
-+#include <string.h>
-+#include <stdlib.h>
-+
-+#include <break.h>
-+#include <pu.h>
-+#include <arg.h>
-+#include <cip.h>
-+#include <data_hand.h>
-+
-+#define PROP_NO 3
-+
-+typedef struct {
-+ char *label;
-+ char *propName;
-+ char *cmd;
-+} PropDesc;
-+typedef struct {
-+ char *name;
-+ BOOL active;
-+} Residue;
-+
-+static BOOL DialOn = FALSE;
-+static PuGizmo DialGizmo = NULL, ListGizmo;
-+static int CurrProp;
-+static PropRefP CurrRefP;
-+static int MolNo, MolI;
-+static BOOL *MolStateA;
-+static BOOL SuppressUpdate = FALSE;
-+static PropDesc PropTab[] = {
-+ {"sel", PROP_SELECTED, "SelectRes"},
-+ {"disp", PROP_DISPLAYED, "DefPropRes 'displayed'"},
-+ {"move", PROP_MOVABLE, "DefProRes 'movable'"}
-+};
-+static Residue ResidueTab[] = {
-+ {"ARG", FALSE},
-+ {"CYS", FALSE},
-+ {"PRO", FALSE},
-+ {"ASP", FALSE},
-+ {"PHE", FALSE},
-+ {"LEU", FALSE},
-+ {"GLU", FALSE},
-+ {"PRO", FALSE},
-+ {"TYR", FALSE},
-+ {"GLY", FALSE},
-+ {"ASN", FALSE},
-+ {"ALA", FALSE},
-+ {"SER", FALSE},
-+ {"THR", FALSE},
-+ {"LYS", FALSE},
-+ {"ILE", FALSE}
-+};
-+
-+static void
-+countMol(DhResP molP, void *clientData)
-+{
-+ MolNo++;
-+}
-+
-+
-+
-+static void
-+addMol(DhResP molP, void *clientData)
-+{
-+
-+
-+ DSTR name;
-+ DSTR residue;
-+ char buf[10];
-+ char buf2[5];
-+ BOOL propVal;
-+ int j;
-+ name = DStrNew();
-+ residue = DStrNew();
-+
-+
-+ j= DhResGetNumber(molP);
-+ (void) sprintf(buf, "%5d " , j);
-+
-+ DStrAssignStr(name, buf);
-+ DStrAssignStr(residue, buf2);
-+ DStrAppStr(name, " ");
-+
-+ DStrAppDStr(residue, DhResGetName(molP));
-+ DStrAppDStr(name, DhResGetName(molP));
-+ propVal = DhResGetProp(CurrRefP, molP);
-+
-+
-+
-+ if (! BreakCheck(10)){
-+ PuAddListEntry(ListGizmo, DStrToStr(name), propVal);
-+
-+ }
-+
-+
-+
-+ MolStateA[MolI] = propVal;
-+
-+ DStrFree(name);
-+
-+ MolI++;
-+}
-+
-+static void
-+selectMolCB(PuGizmo g, char *name, void *clientData, void *callData)
-+{
-+ PuSelectCBStruc *callP = callData;
-+ DSTR cmd;
-+ BOOL isFirst;
-+ char buf[10];
-+ int num, startI, i;
-+
-+ (void) sscanf(name, "%d", &num);
-+ MolStateA[num - 1] = callP->onOff;
-+
-+ if (! callP->last)
-+ return;
-+
-+ cmd = DStrNew();
-+ DStrAssignStr(cmd, PropTab[CurrProp].cmd);
-+ isFirst = TRUE;
-+
-+ for (i = 0; i < MolNo; i++) {
-+ if (i == 0 || ! MolStateA[i - 1])
-+ startI = i;
-+ if (MolStateA[i] && (i == MolNo - 1 || ! MolStateA[i + 1])) {
-+ if (isFirst)
-+ DStrAppStr(cmd, " 'num = ");
-+ else
-+ DStrAppStr(cmd, ",");
-+ (void) sprintf(buf, "%d", startI + 1);
-+ DStrAppStr(cmd, buf);
-+ if (i > startI) {
-+ DStrAppStr(cmd, "..");
-+ (void) sprintf(buf, "%d", i + 1);
-+ DStrAppStr(cmd, buf);
-+ }
-+
-+ isFirst = FALSE;
-+ }
-+ }
-+
-+ if (isFirst)
-+ DStrAppStr(cmd, " '0'");
-+ else
-+ DStrAppStr(cmd, "'");
-+
-+ SuppressUpdate = TRUE;
-+ CipExecCmd(DStrToStr(cmd));
-+ SuppressUpdate = FALSE;
-+
-+ DStrFree(cmd);
-+}
-+
-+static void
-+buildList(void)
-+{
-+ int lineNo;
-+
-+ MolNo = 0;
-+ DhApplyRes(PropGetRef(PROP_ALL, FALSE), countMol, NULL);
-+ if (MolNo > 0) {
-+ if (MolStateA == NULL)
-+ MolStateA = malloc(MolNo * sizeof(*MolStateA));
-+ else
-+ MolStateA = realloc(MolStateA, MolNo * sizeof(*MolStateA));
-+ lineNo = MolNo;
-+ if (lineNo > 40)
-+ lineNo = 40;
-+ } else {
-+ lineNo = 1;
-+ }
-+
-+ PuSetInt(ListGizmo, PU_IC_ENTRY_NO, lineNo);
-+
-+ MolI = 0;
-+ BreakActivate(TRUE);
-+ DhApplyRes(PropGetRef(PROP_ALL, FALSE), addMol, NULL);
-+ BreakActivate(FALSE);
-+
-+ PuSwitchGizmo(ListGizmo, TRUE);
-+}
-+
-+static void
-+updateList(void)
-+{
-+ if (SuppressUpdate)
-+ return;
-+
-+ PuSwitchGizmo(ListGizmo, FALSE);
-+ PuRemoveListEntries(ListGizmo, 0, MolNo);
-+ buildList();
-+}
-+
-+static void
-+selectPropCB(PuGizmo g, char *name, void *clientData, void *callData)
-+{
-+ PuSelectCBStruc *callP = callData;
-+ PropRefP newPropP;
-+ int i;
-+
-+ if (! callP->onOff)
-+ return;
-+
-+ for (i = 0; i < PROP_NO; i++)
-+ if (strcmp(name, PropTab[i].label) == 0)
-+ break;
-+
-+ newPropP = PropGetRef(PropTab[i].propName, FALSE);
-+
-+ if (newPropP != CurrRefP) {
-+ CurrRefP = newPropP;
-+ CurrProp = i;
-+ updateList();
-+ }
-+}
-+
-+static void
-+popdownCB(PuGizmo g, char *name, void *clientData, void *callData)
-+{
-+ PuSwitchGizmo(DialGizmo, FALSE);
-+ DialOn = FALSE;
-+}
-+
-+static void
-+listCB(void *clientData)
-+{
-+ updateList();
-+}
-+
-+static void
-+helpCB(PuGizmo g, char *name, void *clientData, void *callData)
-+{
-+ CipShowHelpFile(DialGizmo, "DialMol");
-+}
-+
-+static void
-+buildDial(void)
-+{
-+
-+ PuGizmo g;
-+ int i;
-+
-+ CurrProp = 0;
-+ CurrRefP = PropGetRef(PropTab[CurrProp].propName, FALSE);
-+
-+ DialGizmo = PuCreateDialog("Residue Dialog", 0, 0);
-+ PuSetBool(DialGizmo, PU_BC_PLACE_OUTSIDE, TRUE);
-+
-+ g = PuCreateRadioBox(DialGizmo, "Property");
-+ for (i = 0; i < PROP_NO; i++)
-+ PuAddToggle(g, PropTab[i].label, i == 0);
-+ PuAddGizmoCB(g, PU_CT_SELECT, selectPropCB, NULL, NULL);
-+ PuSwitchGizmo(g, TRUE);
-+
-+ ListGizmo = PuCreateList(DialGizmo, "Molecules");
-+ PuAddGizmoCB(ListGizmo, PU_CT_SELECT, selectMolCB, NULL, NULL);
-+ PuSetBool(ListGizmo, PU_BC_MULT_SEL, TRUE);
-+ buildList();
-+
-+ PuAddGizmoCB(DialGizmo, PU_CT_CLOSE, popdownCB, NULL, NULL);
-+ PuAddGizmoCB(DialGizmo, PU_CT_HELP, helpCB, NULL, NULL);
-+
-+}
-+
-+ErrCode
-+ExDialRes(char *cmd)
-+{
-+ ArgDescr arg;
-+ EnumEntryDescr enumEntry[2];
-+ ErrCode errCode;
-+
-+ arg.type = AT_ENUM;
-+
-+ ArgInit(&arg, 1);
-+
-+ arg.prompt = "Residue Dialog";
-+ arg.u.enumD.entryP = enumEntry;
-+ arg.u.enumD.n = 2;
-+
-+ enumEntry[0].str = "off";
-+ enumEntry[1].str = "on";
-+
-+ enumEntry[0].onOff = DialOn;
-+ enumEntry[1].onOff = ! DialOn;
-+ if (DialOn)
-+ arg.v.intVal = 0;
-+ else
-+ arg.v.intVal = 1;
-+
-+ errCode = ArgGet(&arg, 1);
-+ if (errCode != EC_OK) {
-+ ArgCleanup(&arg, 1);
-+ return errCode;
-+ }
-+
-+ DialOn = (arg.v.intVal == 1);
-+
-+ ArgCleanup(&arg, 1);
-+
-+ if (DialOn) {
-+ if (DialGizmo == NULL) {
-+ buildDial();
-+ DhAddMolListCB(listCB, NULL);
-+ }
-+ PuSwitchGizmo(DialGizmo, TRUE);
-+ } else {
-+ if (DialGizmo != NULL)
-+ PuSwitchGizmo(DialGizmo, FALSE);
-+ }
-+
-+ return EC_OK;
-+}
-\ No newline at end of file
-diff --git a/src/cmddial/Makefile b/src/cmddial/Makefile
-index d94609d..66fdea9 100644
---- a/src/cmddial/Makefile
-+++ b/src/cmddial/Makefile
-@@ -8,7 +8,7 @@ CPPFLAGS = $(INCLUDES) $(MCPPFLAGS)
- CFLAGS = $(CPPFLAGS) $(MCFLAGS)
-
- OBJ = ExDialColor.o ExDialSelect.o ExDialStyle.o ExDialMol.o ExDialMeas.o \
-- ExDialRmsd.o ExUserInterf.o ExRecordMac.o
-+ ExDialRes.o ExDialRmsd.o ExUserInterf.o ExRecordMac.o
- SRC = $(OBJ:.o=.c)
-
- default: $(LIBDIR)/libcmd.a
-diff --git a/src/cmdio/ExPdb.c b/src/cmdio/ExPdb.c
-index 8447c4c..fde9c73 100644
---- a/src/cmdio/ExPdb.c
-+++ b/src/cmdio/ExPdb.c
-@@ -1,7 +1,7 @@
- /*
- ************************************************************************
- *
--* ExPdb.c - ReadPdb, ReadListPdb and WritePdb commands
-+* ExPdb.c - ReadPdb, ReadOldPdb, ReadListPdb and WritePdb commands
- *
- * Copyright (c) 1994-98
- *
-@@ -105,7 +105,7 @@ compFunc(void *p1, void *p2)
- }
-
- static void
--readTransTab(BOOL pdbToIntern)
-+readTransTab(BOOL pdbToIntern, BOOL isNewNomenclature)
- {
- GFile gf;
- GFileRes res;
-@@ -114,7 +114,7 @@ readTransTab(BOOL pdbToIntern)
-
- TransTab = TreeOpen(sizeof(TransTabEntry), compFunc);
- gf = SetupOpen(PN_PDB_ATOMS, "PdbAtoms", FALSE);
-- if (gf == NULL)
-+ if (gf == NULL || isNewNomenclature)
- return;
-
- if (pdbToIntern) {
-@@ -675,7 +675,7 @@ ExReadPdb(char *cmd)
- return errCode;
- }
-
-- readTransTab(TRUE);
-+ readTransTab(TRUE, TRUE);
- UnknownErrInit();
-
- if (replace) {
-@@ -755,7 +755,7 @@ ExReadListPdb(char *cmd)
-
- FileNamePath(fileName);
-
-- readTransTab(TRUE);
-+ readTransTab(TRUE,TRUE);
- UnknownErrInit();
- inName = DStrNew();
- pdbName = DStrNew();
-@@ -932,7 +932,7 @@ ExWritePdb(char *cmd)
- if (gf == NULL)
- return EC_ERROR;
-
-- readTransTab(FALSE);
-+ readTransTab(FALSE,TRUE);
-
- CHECK_RES(GFileWriteStr(gf, "HEADER Structure from"));
- CHECK_RES(GFileWriteStr(gf, PROG_NAME));
-@@ -987,3 +987,61 @@ ExWritePdb(char *cmd)
-
- return EC_OK;
- }
-+
-+ErrCode
-+ExReadOldPdb(char *cmd)
-+{
-+ BOOL replace;
-+ DSTR name;
-+ int molNo, readNo;
-+ DhMolP *molPA;
-+ ErrCode errCode;
-+ DSTR errStr;
-+
-+ replace = (strncmp(cmd, "Replace", 7) == 0);
-+
-+ name = DStrNew();
-+ errCode = ArgGetFilename(name, CurrDirGet(), "*.pdb", TRUE);
-+ if (errCode != EC_OK) {
-+ DStrFree(name);
-+ return errCode;
-+ }
-+
-+ readTransTab(TRUE, FALSE);
-+ UnknownErrInit();
-+
-+ if (replace) {
-+ molNo = SelMolGet(NULL, 0);
-+ if (molNo > 0) {
-+ molPA = malloc(molNo * sizeof(*molPA));
-+ (void) SelMolGet(molPA, molNo);
-+ }
-+ } else {
-+ molNo = 0;
-+ molPA = NULL;
-+ }
-+
-+ BreakActivate(TRUE);
-+ errCode = readFile(molPA, molNo, name, &readNo);
-+ BreakActivate(FALSE);
-+
-+ DStrFree(name);
-+ TreeClose(TransTab);
-+ if (molNo > 0)
-+ free(molPA);
-+
-+ if (errCode != EC_OK)
-+ return EC_ERROR;
-+
-+ if (replace)
-+ GraphMolChanged(PROP_SELECTED);
-+
-+ errStr = UnknownErrGet();
-+ if (errStr != NULL) {
-+ CipSetError(DStrToStr(errStr));
-+ DStrFree(errStr);
-+ return EC_WARNING;
-+ }
-+
-+ return EC_OK;
-+}
-diff --git a/src/cmdstruc/ExBuild.c b/src/cmdstruc/ExBuild.c
-index 32bc650..7f003b2 100644
---- a/src/cmdstruc/ExBuild.c
-+++ b/src/cmdstruc/ExBuild.c
-@@ -31,11 +31,16 @@
- #include <data_hand.h>
- #include <data_sel.h>
- #include <graph_draw.h>
-+#include <pu.h>
-
- #define ARG_NUM 1
-
- static int CurrPos = 1;
- static int CurrKind = 0;
-+static PuTextWindow TextW;
-+static DhMolP LastMolP=NULL;
-+static BOOL messageWindowCreated=FALSE;
-+static BOOL cyclicResidueFound=FALSE;
-
- ErrCode
- ExNewMol(char *cmd)
-@@ -206,3 +211,121 @@ ExChangeRes(char *cmd)
-
- return EC_OK;
- }
-+
-+static void
-+writeInt(int num)
-+{
-+ char buf[10];
-+ (void) sprintf(buf, "%5d ", num);
-+ PuWriteStr(TextW, buf);
-+}
-+
-+static void
-+checkMolCyclic(DhMolP molP, void *clientData)
-+{
-+ DhResP resP;
-+ DSTR resName = DStrNew();
-+ DStrAssignStr(resName, "XXX");
-+
-+ resP = DhResFirst(molP);
-+ while (resP != NULL) {
-+ if (DStrCmp(resName, DhResGetName(resP)) == 0) {
-+ cyclicResidueFound=TRUE;
-+ }
-+ resP = DhResNext(resP);
-+ }
-+
-+ if (cyclicResidueFound && !messageWindowCreated) {
-+ TextW = PuCreateTextWindow("MakeMolCyclic");
-+ PuWriteStr(TextW, "--------------------------------------------------\n");
-+ messageWindowCreated=TRUE;
-+ }
-+ if (cyclicResidueFound) {
-+ PuWriteStr(TextW, "Error -");
-+ writeInt(DhMolGetNumber(molP) + 1);
-+ PuWriteStr(TextW, DStrToStr(DhMolGetName(molP)));
-+ PuWriteStr(TextW, " already made cyclic!\n");
-+ }
-+}
-+
-+static void
-+makeMolCyclic(DhMolP molP, void *clientData)
-+{
-+ DhResP xResP, yResP;
-+ Vec3 firstCoord, lastCoord, midCoord;
-+ DhResP firstResP, lastResP;
-+ DhAtomP caAtomP;
-+ DSTR atomName = DStrNew();
-+ DhResDefP resDefP = (DhResDefP) clientData;
-+
-+ DStrAssignStr(atomName, "CA");
-+
-+ xResP = DhResNewCyclic(molP, resDefP, SP_FIRST);
-+ DhResInit(xResP);
-+ yResP = DhResNewCyclic(molP, resDefP, SP_LAST);
-+ DhResInit(yResP);
-+
-+ xResP = DhResFirst(molP);
-+
-+ firstResP = DhResNext(xResP);
-+ caAtomP = NULL;
-+ while (caAtomP == NULL && firstResP != NULL) {
-+ caAtomP = DhAtomFindName(firstResP, atomName, FALSE);
-+ firstResP = DhResNext(firstResP);
-+ }
-+ if (caAtomP == NULL) {
-+ return;
-+ }
-+ DhAtomGetCoord(caAtomP, firstCoord);
-+
-+ yResP = DhResLast(molP);
-+ lastResP = DhResPrev(yResP);
-+ caAtomP = NULL;
-+ while (caAtomP == NULL && lastResP != NULL) {
-+ caAtomP = DhAtomFindName(lastResP, atomName, FALSE);
-+ lastResP = DhResPrev(lastResP);
-+ }
-+ if (caAtomP == NULL) {
-+ return;
-+ }
-+
-+ DhAtomGetCoord(caAtomP, lastCoord);
-+
-+ midCoord[0] = (firstCoord[0]+lastCoord[0])/2;
-+ midCoord[1] = (firstCoord[1]+lastCoord[1])/2;
-+ midCoord[2] = (firstCoord[2]+lastCoord[2])/2;
-+
-+ DhAtomSetCoord(DhResGetAtomA(xResP), midCoord);
-+ DhAtomSetCoord(DhResGetAtomA(yResP), midCoord);
-+}
-+
-+ErrCode
-+ExMakeMolCyclic(char *cmd)
-+{
-+ int ind=0;
-+ DhResDefP resDefP;
-+ DSTR resName = DStrNew();
-+
-+ messageWindowCreated=FALSE;
-+ cyclicResidueFound=FALSE;
-+ DhApplyMol(PropGetRef(PROP_SELECTED, FALSE), checkMolCyclic, NULL);
-+ if (cyclicResidueFound) {
-+ DSTR msg = DStrNew();
-+ DStrAssignStr(msg, "Error cyclic molecules selected");
-+ PuSetTextField(PU_TF_STATUS, DStrToStr(msg));
-+ DStrFree(msg);
-+ return EC_OK;
-+ }
-+
-+ DStrAssignStr(resName, "XXX");
-+ resDefP = DhResDefGet(resName);
-+ if (resDefP == NULL) {
-+ CipSetError("error cyclic marker residue 'XXX' not found in residue library");
-+ return EC_ERROR;
-+ }
-+
-+ DhApplyMol(PropGetRef(PROP_SELECTED, FALSE), makeMolCyclic, resDefP);
-+ GraphMolChanged(PROP_SELECTED);
-+ GraphRedrawNeeded();
-+ return EC_OK;
-+}
-diff --git a/src/data/DataHand.c b/src/data/DataHand.c
-index 368aad3..d020c20 100644
---- a/src/data/DataHand.c
-+++ b/src/data/DataHand.c
-@@ -994,9 +994,11 @@ BOOL
- DhResDestroy(DhResP resP)
- {
- /* can only destroy first or last residue of molecule! */
-+ DhMolP molP;
- if (resP == ListFirst(resP->molP->resL)) {
-+ molP = resP->molP;
- ListRemove(resP->molP->resL, resP);
-- setEquivI(ListFirst(resP->molP->resL), NULL);
-+ setEquivI((DhResP)ListFirst(molP->resL), NULL);
- return TRUE;
- } else if (resP == ListLast(resP->molP->resL)) {
- ListRemove(resP->molP->resL, resP);
-@@ -2842,6 +2844,18 @@ DhResGetName(DhResP resP)
- return resP->defP->name;
- }
-
-+DhAtomP
-+DhResGetAtomA(DhResP resP)
-+{
-+ return resP->atomA;
-+}
-+
-+DhResDefP
-+DhResGetDefP(DhResP resP)
-+{
-+ return resP->defP;
-+}
-+
- int
- DhResGetNumber(DhResP resP)
- {
-@@ -3313,3 +3327,101 @@ DhAltCoordListGet(void)
- {
- return AltCoordList;
- }
-+
-+static void
-+initResCyclic(DhResP resP)
-+{
-+ DhResDefP defP;
-+ DhResP prevResP, nextResP;
-+ DhAtomP atomP, equivAtomP;
-+ int i;
-+
-+ defP = resP->defP;
-+
-+ resP->neighLeftP = NULL;
-+ resP->neighRightP = NULL;
-+
-+ resP->atomA = malloc(defP->atomNo * sizeof(*resP->atomA));
-+ resP->bondA = malloc(defP->bondNo * sizeof(*resP->bondA));
-+ resP->angleA = malloc(defP->angleNo * sizeof(*resP->angleA));
-+
-+ for (i = 0; i < defP->atomNo; i++)
-+ initAtom(resP->atomA + i, resP);
-+
-+ for (i = defP->firstBondI; i <= defP->lastBondI; i++)
-+ initBond(resP->bondA + i, resP);
-+
-+ for (i = 0; i < defP->angleNo; i++) {
-+ resP->angleA[i].resP = resP;
-+ resP->angleA[i].val = 0.0f;
-+ resP->angleA[i].minVal = DH_ANGLE_MIN;
-+ resP->angleA[i].maxVal = DH_ANGLE_MAX;
-+ resP->angleA[i].changed = FALSE;
-+ resP->angleA[i].propTab = PropNewTab(FALSE);
-+ }
-+
-+ resP->propTab = PropNewTab(FALSE);
-+
-+ for (i = 0; i < EQUIV_NO; i++) {
-+ resP->equivI[i] = -1;
-+ }
-+
-+ prevResP = ListPrev(resP->molP->resL, resP);
-+ nextResP = ListNext(resP->molP->resL, resP);
-+}
-+
-+DhResP
-+DhResNewCyclic(DhMolP molP, DhResDefP defP, DhSeqPos pos)
-+{
-+ struct DhResS resS;
-+ DhResP resP, prevResP, nextResP;
-+
-+ resS.molP = molP;
-+ resS.defP = defP;
-+
-+ if (pos == SP_FIRST) {
-+ nextResP = ListFirst(molP->resL);
-+ if (nextResP == NULL)
-+ resS.num = 1;
-+ else
-+ resS.num = nextResP->num - 1;
-+
-+ resP = ListInsertFirst(molP->resL, &resS);
-+ } else {
-+ prevResP = ListLast(molP->resL);
-+ if (prevResP == NULL)
-+ resS.num = 1;
-+ else
-+ resS.num = prevResP->num + 1;
-+
-+ resP = ListInsertLast(molP->resL, &resS);
-+ }
-+
-+ initResCyclic(resP);
-+
-+ return resP;
-+}
-+
-+DhResP
-+DhResPrev(DhResP resP)
-+{
-+ return (DhResP) ListPrev(resP->molP->resL, resP);
-+}
-+
-+DhResP
-+DhResNext(DhResP resP)
-+{
-+ return (DhResP) ListNext(resP->molP->resL, resP);
-+}
-+
-+DhResP
-+DhResFirst(DhMolP molP)
-+{
-+ return (DhResP) ListFirst(molP->resL);
-+}
-+
-+DhResP
-+DhResLast(DhMolP molP)
-+{
-+ return (DhResP) ListLast(molP->resL);
-+}
-diff --git a/src/iodev/IODev.c b/src/iodev/IODev.c
-index aa4f9a7..9c04ce8 100644
---- a/src/iodev/IODev.c
-+++ b/src/iodev/IODev.c
-@@ -44,6 +44,7 @@ extern void IOMotifGLDSetDev(void);
- #endif
- #ifdef IO_DEV_MOTIF_OGL
- extern void IOMotifOGLSetDev(void);
-+extern void IOMotifOGLDSetDev(void);
- #endif
- #ifdef IO_DEV_MOTIF_XGL
- extern void IOMotifXGLSetDev(void);
-@@ -75,6 +76,7 @@ static DevListEntry DevList[] = {
- #endif
- #ifdef IO_DEV_MOTIF_OGL
- {"Motif/OpenGL", IOMotifOGLSetDev},
-+ {"Motif/OpenGLD", IOMotifOGLDSetDev},
- #endif
- #ifdef IO_DEV_MOTIF_XGL
- {"Motif/XGL", IOMotifXGLSetDev},
-diff --git a/src/main/MolInit.c b/src/main/MolInit.c
-index a7c467a..fccccd3 100644
---- a/src/main/MolInit.c
-+++ b/src/main/MolInit.c
-@@ -313,8 +313,9 @@ MolInit(char *defaultDev, int argc, char *argv[], char *macroName)
-
- SgSetDoubleBuffer(TRUE);
-
-- ProgDirSet("MOLMOLHOME", "/usr/molmol");
-+ ProgDirSet("MOLMOLHOME", argv[0]);
- SetupSetDir("setup");
-+ CurrDirSet(getenv("HOME"));
-- UserFileSetDir(CurrDirGet(), "molmol");
-+ UserFileSetDir(CurrDirGet(), ".molmol");
- GFileSetErrorHandler(handleFileError);
-
-@@ -326,7 +327,7 @@ MolInit(char *defaultDev, int argc, char *argv[], char *macroName)
- IOSetErrorHandler(handleIOError);
-
- PuSetTextField(PU_TF_TITLE,
-- "MOLMOL - MOLecule analysis and MOLecule display");
-+ "MOLMOL - MOLecule analysis and MOLecule display - JCU V1.0.8");
-
- gf = UserFileOpenRead("par");
- if (gf != NULL) {
-diff --git a/src/main/MolMol.c b/src/main/MolMol.c
-index 6f825e8..902b50a 100644
---- a/src/main/MolMol.c
-+++ b/src/main/MolMol.c
-@@ -30,5 +30,5 @@
- int
- main(int argc, char *argv[])
- {
-- return MolInit("Motif/X11", argc, argv, NULL);
-+ return MolInit("Motif/OpenGL", argc, argv, NULL);
- }
-diff --git a/src/motif/MotifDial.c b/src/motif/MotifDial.c
-index 6e3bfd7..8fe0c5a 100644
---- a/src/motif/MotifDial.c
-+++ b/src/motif/MotifDial.c
-@@ -1115,26 +1115,24 @@ PuMotifSetStr(PuGizmo gizmo, PuStrChoice choice, char *val)
- void
- PuMotifSetColor(PuGizmo gizmo, float r, float g, float b)
- {
-- Display *dpy;
-- int screen;
-- Pixel pix;
-- XColor col;
-+ Display *display;
-+ Pixel pixel;
-+ XColor color;
-+ Colormap colormap;
-
-- dpy = XtDisplay(gizmo);
-- screen = DefaultScreen(dpy);
-- XtVaGetValues(gizmo,
-- XmNbackground, &pix,
-- NULL);
-+ display = XtDisplay(gizmo);
-+ XtVaGetValues(gizmo, XmNbackground, &pixel, NULL);
-+ colormap = DefaultColormapOfScreen(XtScreen(gizmo));
-
-- if (pix == BlackPixel(dpy, screen))
-- return;
-+ color.pixel = pixel;
-+ color.red = FLOAT2SHORT(r);
-+ color.green = FLOAT2SHORT(g);
-+ color.blue = FLOAT2SHORT(b);
-+ color.flags = DoRed | DoGreen | DoBlue;
-
-- col.pixel = pix;
-- col.red = FLOAT2SHORT(r);
-- col.green = FLOAT2SHORT(g);
-- col.blue = FLOAT2SHORT(b);
-- col.flags = DoRed | DoGreen | DoBlue;
-- XStoreColor(dpy, DefaultColormap(dpy, screen), &col);
-+ XFreeColors(display, colormap, &pixel, 1, 0);
-+ XAllocColor(display, colormap, &color);
-+ XtVaSetValues(gizmo, XmNbackground, color.pixel, NULL);
- }
-
- void
-diff --git a/src/motogl/MotOGLDump.c b/src/motogl/MotOGLDump.c
-index 54a4222..3bc25cc 100644
---- a/src/motogl/MotOGLDump.c
-+++ b/src/motogl/MotOGLDump.c
-@@ -302,7 +302,7 @@ writeImg(void)
- TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 8);
-
- if (Quality < 100)
-- TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_PACKBITS);
-+ TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_LZW);
- else
- TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_NONE);
-
-diff --git a/src/os/CurrDir.c b/src/os/CurrDir.c
-index edee778..7d2b242 100644
---- a/src/os/CurrDir.c
-+++ b/src/os/CurrDir.c
-@@ -26,9 +26,9 @@
- #include <curr_dir.h>
-
- #include <stdlib.h>
--#ifdef WIN32
--#include <direct.h>
- #include <string.h>
-+#ifdef WIN32
-+#include <direct.h>
- #else
- #include <unistd.h>
- #include <errno.h>
-@@ -36,43 +36,15 @@
-
- static char *CurrDir = NULL;
-
-+void
-+CurrDirSet(char *dir)
-+{
-+ CurrDir = malloc(strlen(dir) + 1);
-+ (void) strcpy(CurrDir, dir);
-+}
-+
- char *
- CurrDirGet(void)
- {
--#ifdef WIN32
-- int len, i;
--#else
-- int size = 10;
--#endif
--
-- if (CurrDir != NULL)
-- return CurrDir;
--
--#ifdef WIN32
-- CurrDir = _getcwd(NULL, 0);
-- if (CurrDir != NULL) {
-- len = strlen(CurrDir);
-- for (i = 0; i < len; i++)
-- if (CurrDir[i] == '\\')
-- CurrDir[i] = '/';
-- return CurrDir;
-- }
--#else
-- CurrDir = malloc(size);
-- for (;;) {
-- if (getcwd(CurrDir, size) != NULL)
-- return CurrDir;
-- if (errno != ERANGE)
-- break;
-- size *= 2;
-- CurrDir = realloc(CurrDir, size);
-- }
--#endif
--
-- /* cannot get current directory, return root directory */
-- CurrDir = realloc(CurrDir, 2);
-- CurrDir[0] = '/';
-- CurrDir[1] = '\0';
--
- return CurrDir;
- }
-diff --git a/src/os/ProgDir.c b/src/os/ProgDir.c
-index 7abb08d..79ede45 100644
---- a/src/os/ProgDir.c
-+++ b/src/os/ProgDir.c
-@@ -45,10 +45,6 @@ ProgDirSet(char *envVar, char *defVal)
- dir = getenv(envVar);
- if (dir == NULL) {
- len = GetModuleFileName(NULL, exePath, sizeof(exePath));
-- if (len == 0) {
-- ProgDir = defVal;
-- return;
-- }
- len--;
- while (len > 0 && exePath[len] != '\\')
- len--;
-@@ -65,9 +61,24 @@ ProgDirSet(char *envVar, char *defVal)
- if (ProgDir[i] == '\\')
- ProgDir[i] = '/';
- #else
-- ProgDir = getenv(envVar);
-- if (ProgDir == NULL)
-- ProgDir = defVal;
-+ char *dir;
-+ char *exePath;
-+ int len;
-+ dir = getenv(envVar);
-+ if (dir == NULL) {
-+ exePath = defVal;
-+ len = strlen(exePath);
-+ len--;
-+ while (len > 0 && exePath[len] != '/')
-+ len--;
-+ dir = exePath;
-+ } else {
-+ len = strlen(dir);
-+ }
-+
-+ ProgDir = malloc(len + 1);
-+ (void) strncpy(ProgDir, dir, len);
-+
- #endif
- }
-
-diff --git a/src/win/WinDial.c b/src/win/WinDial.c
-index 61d6432..e880559 100644
---- a/src/win/WinDial.c
-+++ b/src/win/WinDial.c
-@@ -1072,148 +1072,143 @@ dialProc(HWND w, UINT msgKind, WPARAM wParam, LPARAM lParam)
- childP = (GizmoInfo *) GetWindowLong(childW, GWL_USERDATA);
-
- switch (notifyCode) {
-- case BN_CLICKED:
-- if (childId < infoP->u.dial.childNo) {
-+ case BN_CLICKED:
-+ if (childId < infoP->u.dial.childNo) {
- childP = (GizmoInfo *) GetWindowLong(GetFocus(), GWL_USERDATA);
-- if (childP->type == GIZMO_TOGGLE) {
-- boxP = childP->u.toggle.boxP;
-- if (boxP->type == GIZMO_RADIO_BOX) {
-- for (i = 0; i < infoP->u.dial.childNo; i++) {
-- cP = infoP->u.dial.childPA[i];
-- if (cP->type != GIZMO_TOGGLE)
-- continue;
-- if (cP->u.toggle.boxP != boxP)
-- continue;
-- onOff = SendMessage(cP->w, BM_GETCHECK, 0, 0);
-- if (onOff && cP != childP) {
-- cP->u.toggle.onOff = FALSE;
-- SendMessage(cP->w, BM_SETCHECK, FALSE, 0);
-- selectStruc.onOff = FALSE;
-- callCB(boxP, PU_CT_SELECT, cP->name, &selectStruc);
-- break;
-- }
-- }
-- if (cP != childP) {
-- childP->u.toggle.onOff = TRUE;
-- SendMessage(childP->w, BM_SETCHECK, TRUE, 0);
-- selectStruc.onOff = TRUE;
-- callCB(boxP, PU_CT_SELECT, childP->name, &selectStruc);
-- }
-- } else {
-- onOff = ! SendMessage(childP->w, BM_GETCHECK, 0, 0);
-- childP->u.toggle.onOff = onOff;
-- SendMessage(childP->w, BM_SETCHECK, onOff, 0);
-- selectStruc.onOff = onOff;
-- callCB(boxP, PU_CT_SELECT, childP->name, &selectStruc);
-- }
-- } else {
-- callCB(childP, PU_CT_ACTIVATE, childP->name, NULL);
-- if (childP->type == GIZMO_TEXT_FIELD &&
-- childP->u.text.historySize > 0)
-- childP->u.text.firstMod = TRUE;
-- }
-- } else {
-- buttonI = childId - infoP->u.dial.childNo;
-- callCB(infoP, BUTTON_FIRST + buttonI, ButtonLabelA[buttonI], NULL);
-- }
-+ if (childP->type == GIZMO_TOGGLE) {
-+ boxP = childP->u.toggle.boxP;
-+ if (boxP->type == GIZMO_RADIO_BOX) {
-+ for (i = 0; i < infoP->u.dial.childNo; i++) {
-+ cP = infoP->u.dial.childPA[i];
-+ if (cP->type != GIZMO_TOGGLE) continue;
-+ if (cP->u.toggle.boxP != boxP) continue;
-+ onOff = SendMessage(cP->w, BM_GETCHECK, 0, 0);
-+ if (onOff && cP != childP) {
-+ cP->u.toggle.onOff = FALSE;
-+ SendMessage(cP->w, BM_SETCHECK, FALSE, 0);
-+ selectStruc.onOff = FALSE;
-+ callCB(boxP, PU_CT_SELECT, cP->name, &selectStruc);
-+ break;
-+ }
-+ }
-+ if (cP != childP) {
-+ childP->u.toggle.onOff = TRUE;
-+ SendMessage(childP->w, BM_SETCHECK, TRUE, 0);
-+ selectStruc.onOff = TRUE;
-+ callCB(boxP, PU_CT_SELECT, childP->name, &selectStruc);
-+ }
-+ } else {
-+ onOff = ! SendMessage(childP->w, BM_GETCHECK, 0, 0);
-+ childP->u.toggle.onOff = onOff;
-+ SendMessage(childP->w, BM_SETCHECK, onOff, 0);
-+ selectStruc.onOff = onOff;
-+ callCB(boxP, PU_CT_SELECT, childP->name, &selectStruc);
-+ }
-+ } else {
-+ callCB(childP, PU_CT_ACTIVATE, childP->name, NULL);
-+ if (childP->type == GIZMO_TEXT_FIELD && childP->u.text.historySize > 0) childP->u.text.firstMod = TRUE;
-+ }
-+ } else {
-+ buttonI = childId - infoP->u.dial.childNo;
-+ callCB(infoP, BUTTON_FIRST + buttonI, ButtonLabelA[buttonI], NULL);
-+ }
- return TRUE;
-- case EN_UPDATE:
-- textEdit(childP);
-- return TRUE;
-- case LBN_SELCHANGE:
-- for (i = 0; i < childP->u.list.entryNo; i++)
-- if (SendMessage(childW, LB_GETSEL, i, 0) !=
-- childP->u.list.entryA[i].onOff)
-- lastI = i;
-
-- for (i = 0; i < childP->u.list.entryNo; i++) {
-- onOff = SendMessage(childW, LB_GETSEL, i, 0);
-- if (onOff != childP->u.list.entryA[i].onOff) {
-- if (! childP->u.list.autoDesel)
-+ case EN_UPDATE:
-+ textEdit(childP);
-+ return TRUE;
-+
-+ case LBN_SELCHANGE:
-+ for (i = 0; i < childP->u.list.entryNo; i++)
-+ if (SendMessage(childW, LB_GETSEL, i, 0) != childP->u.list.entryA[i].onOff)
-+ lastI = i;
-+
-+ for (i = 0; i < childP->u.list.entryNo; i++) {
-+ onOff = SendMessage(childW, LB_GETSEL, i, 0);
-+ if (onOff != childP->u.list.entryA[i].onOff) {
-+ if (! childP->u.list.autoDesel)
- childP->u.list.entryA[i].onOff = onOff;
-- selectStruc.onOff = onOff;
-- selectStruc.last = (i == lastI);
-- callCB(childP, PU_CT_SELECT,
-- childP->u.list.entryA[i].str, &selectStruc);
-- }
-- }
--
-- if (childP->u.list.autoDesel)
-- SendMessage(childW, LB_SETCURSEL, -1, 0);
--
-- return TRUE;
-+ selectStruc.onOff = onOff;
-+ selectStruc.last = (i == lastI);
-+ callCB(childP, PU_CT_SELECT,
-+ childP->u.list.entryA[i].str, &selectStruc);
-+ }
-+ }
-+ if (childP->u.list.autoDesel)
-+ SendMessage(childW, LB_SETCURSEL, -1, 0);
-+ return TRUE;
- }
-+ break;
-
-- break;
-- case WM_VSCROLL:
-- childW = (HWND) lParam;
-- childP = (GizmoInfo *) GetWindowLong(childW, GWL_USERDATA);
-- scrollCode = LOWORD(wParam);
-+ case WM_VSCROLL:
-+ childW = (HWND) lParam;
-+ childP = (GizmoInfo *) GetWindowLong(childW, GWL_USERDATA);
-+ scrollCode = LOWORD(wParam);
-
-- if (scrollCode == SB_LINEUP) {
-- upHistory(childP->u.scroll.textP);
-- } else if (scrollCode == SB_LINEDOWN) {
-- downHistory(childP->u.scroll.textP);
-- } else {
-- return FALSE;
-- }
-- return TRUE;
-- case WM_HSCROLL:
-- scrollCode = LOWORD(wParam);
-- if (scrollCode != SB_THUMBPOSITION && scrollCode != SB_THUMBTRACK)
-- return FALSE;
-+ if (scrollCode == SB_LINEUP) {
-+ upHistory(childP->u.scroll.textP);
-+ } else if (scrollCode == SB_LINEDOWN) {
-+ downHistory(childP->u.scroll.textP);
-+ } else {
-+ return FALSE;
-+ }
-+ return TRUE;
-+ case WM_HSCROLL:
-+ scrollCode = LOWORD(wParam);
-+ if (scrollCode != SB_THUMBPOSITION && scrollCode != SB_THUMBTRACK)
-+ return FALSE;
-
-- scrollPos = (int)(short)HIWORD(wParam);
-- childW = (HWND) lParam;
-- childP = (GizmoInfo *) GetWindowLong(childW, GWL_USERDATA);
-+ scrollPos = (int)(short)HIWORD(wParam);
-+ childW = (HWND) lParam;
-+ childP = (GizmoInfo *) GetWindowLong(childW, GWL_USERDATA);
-
-- floatStruc.oldVal = childP->u.slider.val;
-- childP->u.slider.val = scrollPos / childP->u.slider.factor;
-- SetScrollPos(childW, SB_CTL,
-- (int) (childP->u.slider.val * childP->u.slider.factor),
-- TRUE);
-+ floatStruc.oldVal = childP->u.slider.val;
-+ childP->u.slider.val = scrollPos / childP->u.slider.factor;
-+ SetScrollPos(childW, SB_CTL,
-+ (int) (childP->u.slider.val * childP->u.slider.factor), TRUE);
-
-- if (childP->u.slider.valuatorCB == NULL) {
-- floatStruc.newVal = childP->u.slider.val;
-- callCB(childP, PU_CT_MODIFY, childP->name, &floatStruc);
-- } else {
-- valStruc.act = PU_MA_ACTIVATE;
-- valStruc.name = childP->name;
-- valStruc.val = childP->u.slider.val;
-- childP->u.slider.valuatorCB(childP, childP->u.slider.clientData, &valStruc);
-- }
-+ if (childP->u.slider.valuatorCB == NULL) {
-+ floatStruc.newVal = childP->u.slider.val;
-+ callCB(childP, PU_CT_MODIFY, childP->name, &floatStruc);
-+ } else {
-+ valStruc.act = PU_MA_ACTIVATE;
-+ valStruc.name = childP->name;
-+ valStruc.val = childP->u.slider.val;
-+ childP->u.slider.valuatorCB(childP, childP->u.slider.clientData, &valStruc);
-+ }
-+ return TRUE;
-
-- return TRUE;
-- case WM_PAINT:
-- for (childId = 0; childId < infoP->u.dial.childNo; childId++) {
-- childP = infoP->u.dial.childPA[childId];
-- if (childP->type == GIZMO_COLOR_FIELD)
-- paintColor(childP->w,
-- childP->u.color.r, childP->u.color.g, childP->u.color.b);
-- }
-- break;
-- case WM_MOVE:
-- if (infoP->u.dial.outside) {
-- WinPlaceChanged(infoP->w);
-- return TRUE;
-- }
-- break;
-- case WM_CLOSE:
-- buttonNo = 0;
-- for (i = 0; i < BUTTON_NO; i++)
-- if (infoP->u.dial.buttonSwitchA[i])
-- buttonNo++;
-- if (buttonNo == 0)
-- ShowWindow(infoP->w, SW_HIDE);
-- return TRUE;
-- case WM_DESTROY:
-- WinRemoveDialog(w);
-- for (childId = 0; childId < infoP->u.dial.childNo; childId++)
-- freeInfo(infoP->u.dial.childPA[childId]);
-- freeInfo(infoP);
-- return TRUE;
-- }
-+ case WM_PAINT:
-+ for (childId = 0; childId < infoP->u.dial.childNo; childId++) {
-+ childP = infoP->u.dial.childPA[childId];
-+ if (childP->type == GIZMO_COLOR_FIELD)
-+ paintColor(childP->w,
-+ childP->u.color.r, childP->u.color.g, childP->u.color.b);
-+ }
-+ break;
-
-+ case WM_MOVE:
-+ if (infoP->u.dial.outside) {
-+ WinPlaceChanged(infoP->w);
-+ return TRUE;
-+ }
-+ break;
-+ case WM_CLOSE:
-+ buttonNo = 0;
-+ for (i = 0; i < BUTTON_NO; i++) {
-+ if (infoP->u.dial.buttonSwitchA[i]) buttonNo++;
-+ if (buttonNo == 0) {
-+ ShowWindow(infoP->w, SW_HIDE);
-+ }
-+ }
-+ return TRUE;
-+ case WM_DESTROY:
-+ WinRemoveDialog(w);
-+ for (childId = 0; childId < infoP->u.dial.childNo; childId++)
-+ freeInfo(infoP->u.dial.childPA[childId]);
-+ freeInfo(infoP);
-+ return TRUE;
-+ }
- return FALSE;
- }
-
-diff --git a/src/winogl/WinOGLDump.c b/src/winogl/WinOGLDump.c
-index 0a7d61a..a8ce850 100644
---- a/src/winogl/WinOGLDump.c
-+++ b/src/winogl/WinOGLDump.c
-@@ -44,6 +44,7 @@
- #endif
- #ifdef PNG_SUPPORT
- #include <png.h>
-+#include <pngpriv.h>
- #endif
-
- #include "winogl_int.h"
-@@ -251,7 +252,7 @@ static void
- pngErrHand(png_structp pngStrucP, char *errMsg)
- {
- IORaiseError(errMsg);
-- longjmp(pngStrucP->jmpbuf, 1);
-+ longjmp(pngStrucP->longjmp_buffer, 1);
- }
- #endif
-
-@@ -314,7 +315,7 @@ writeImg(void)
- TIFFSetField(tif, TIFFTAG_BITSPERSAMPLE, 8);
-
- if (Quality < 100)
-- TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_PACKBITS);
-+ TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_LZW);
- else
- TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_NONE);
-
-@@ -369,7 +370,7 @@ writeImg(void)
- return IO_RES_ERR;
- }
-
-- if (setjmp(pngStrucP->jmpbuf)) {
-+ if (setjmp(pngStrucP->longjmp_buffer)) {
- if (cBuf != NULL)
- free(cBuf);
- if (fBuf != NULL)
diff --git a/sci-chemistry/molmol/molmol-2k_p2-r2.ebuild b/sci-chemistry/molmol/molmol-2k_p2-r2.ebuild
index 9fafb28a9e9f..888c738d4f15 100644
--- a/sci-chemistry/molmol/molmol-2k_p2-r2.ebuild
+++ b/sci-chemistry/molmol/molmol-2k_p2-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2013 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=4
@@ -12,7 +12,8 @@ DESCRIPTION="Publication-quality molecular visualization package"
HOMEPAGE="http://hugin.ethz.ch/wuthrich/software/molmol/index.html"
SRC_URI="
ftp://ftp.mol.biol.ethz.ch/software/MOLMOL/unix-gzip/${MY_P}-src.tar.gz
- ftp://ftp.mol.biol.ethz.ch/software/MOLMOL/unix-gzip/${MY_P}-doc.tar.gz"
+ ftp://ftp.mol.biol.ethz.ch/software/MOLMOL/unix-gzip/${MY_P}-doc.tar.gz
+ https://dev.gentoo.org/~soap/distfiles/${PN}-patches.tbz2"
LICENSE="molmol"
SLOT="0"
@@ -45,12 +46,12 @@ pkg_setup() {
src_prepare() {
rm -rf tiff*
# Patch from http://pjf.net/science/molmol.html, where src.rpm is provided
- epatch "${FILESDIR}"/pjf_RH9_molmol2k2.diff
+ epatch "${WORKDIR}"/patches/pjf_RH9_molmol2k2.diff
- epatch "${FILESDIR}"/prefix.patch
+ epatch "${WORKDIR}"/patches/prefix.patch
eprefixify molmol
- epatch "${FILESDIR}"/ldflags.patch
+ epatch "${WORKDIR}"/patches/ldflags.patch
ln -s makedef.lnx "${S}"/makedef || die
@@ -63,8 +64,8 @@ src_prepare() {
-e "s:^CC.*:CC = $(tc-getCC):" \
-i "${S}"/makedef || die
- epatch "${FILESDIR}"/cast.patch
- epatch "${FILESDIR}"/libpng15.patch
+ epatch "${WORKDIR}"/patches/cast.patch
+ epatch "${WORKDIR}"/patches/libpng15.patch
}
src_install() {
diff --git a/sci-chemistry/molmol/molmol-2k_p2-r3.ebuild b/sci-chemistry/molmol/molmol-2k_p2-r3.ebuild
index 318269562f26..22f3e6a03bdf 100644
--- a/sci-chemistry/molmol/molmol-2k_p2-r3.ebuild
+++ b/sci-chemistry/molmol/molmol-2k_p2-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2013 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=4
@@ -12,7 +12,8 @@ DESCRIPTION="Publication-quality molecular visualization package"
HOMEPAGE="http://hugin.ethz.ch/wuthrich/software/molmol/index.html"
SRC_URI="
ftp://ftp.mol.biol.ethz.ch/software/MOLMOL/unix-gzip/${MY_P}-src.tar.gz
- ftp://ftp.mol.biol.ethz.ch/software/MOLMOL/unix-gzip/${MY_P}-doc.tar.gz"
+ ftp://ftp.mol.biol.ethz.ch/software/MOLMOL/unix-gzip/${MY_P}-doc.tar.gz
+ https://dev.gentoo.org/~soap/distfiles/${PN}-patches.tbz2"
LICENSE="molmol"
SLOT="0"
@@ -45,12 +46,12 @@ pkg_setup() {
src_prepare() {
rm -rf tiff*
# Patch from http://pjf.net/science/molmol.html, where src.rpm is provided
- epatch "${FILESDIR}"/pjf_RH9_molmol2k2.diff
+ epatch "${WORKDIR}"/patches/pjf_RH9_molmol2k2.diff
- epatch "${FILESDIR}"/prefix.patch
+ epatch "${WORKDIR}"/patches/prefix.patch
eprefixify molmol
- epatch "${FILESDIR}"/ldflags.patch
+ epatch "${WORKDIR}"/patches/ldflags.patch
ln -s makedef.lnx "${S}"/makedef || die
@@ -63,12 +64,12 @@ src_prepare() {
-e "s:^CC.*:CC = $(tc-getCC):" \
-i "${S}"/makedef || die
- epatch "${FILESDIR}"/cast.patch
- epatch "${FILESDIR}"/libpng15.patch
+ epatch "${WORKDIR}"/patches/cast.patch
+ epatch "${WORKDIR}"/patches/libpng15.patch
# patch from fink
# fixes numerous bad bracings and hopefully the OGL bug 429974
- epatch "${FILESDIR}"/${P}-fink.patch
+ epatch "${WORKDIR}"/patches/${P}-fink.patch
}
src_install() {
diff --git a/sci-chemistry/molmol/molmol-2k_p2-r4.ebuild b/sci-chemistry/molmol/molmol-2k_p2-r4.ebuild
index d4034a9d63c5..26a294922182 100644
--- a/sci-chemistry/molmol/molmol-2k_p2-r4.ebuild
+++ b/sci-chemistry/molmol/molmol-2k_p2-r4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=5
@@ -12,7 +12,8 @@ DESCRIPTION="Publication-quality molecular visualization package"
HOMEPAGE="http://hugin.ethz.ch/wuthrich/software/molmol/index.html"
SRC_URI="
ftp://ftp.mol.biol.ethz.ch/software/MOLMOL/unix-gzip/${MY_P}-src.tar.gz
- ftp://ftp.mol.biol.ethz.ch/software/MOLMOL/unix-gzip/${MY_P}-doc.tar.gz"
+ ftp://ftp.mol.biol.ethz.ch/software/MOLMOL/unix-gzip/${MY_P}-doc.tar.gz
+ https://dev.gentoo.org/~soap/distfiles/${PN}-patches.tbz2"
LICENSE="molmol"
SLOT="0"
@@ -45,12 +46,12 @@ pkg_setup() {
src_prepare() {
rm -rf tiff*
# Patch from http://pjf.net/science/molmol.html, where src.rpm is provided
- epatch "${FILESDIR}"/pjf_RH9_molmol2k2.diff
+ epatch "${WORKDIR}"/patches/pjf_RH9_molmol2k2.diff
- epatch "${FILESDIR}"/prefix.patch
+ epatch "${WORKDIR}"/patches/prefix.patch
eprefixify molmol
- epatch "${FILESDIR}"/ldflags.patch
+ epatch "${WORKDIR}"/patches/ldflags.patch
ln -s makedef.lnx "${S}"/makedef || die
@@ -63,12 +64,12 @@ src_prepare() {
-e "s:^CC.*:CC = $(tc-getCC):" \
-i "${S}"/makedef || die
- epatch "${FILESDIR}"/cast.patch
- epatch "${FILESDIR}"/libpng15.patch
+ epatch "${WORKDIR}"/patches/cast.patch
+ epatch "${WORKDIR}"/patches/libpng15.patch
# patch from fink
# fixes numerous bad bracings and hopefully the OGL bug 429974
- epatch "${FILESDIR}"/${P}-fink.patch
+ epatch "${WORKDIR}"/patches/${P}-fink.patch
tc-export AR
}
diff --git a/sci-chemistry/molmol/molmol-2k_p2-r5.ebuild b/sci-chemistry/molmol/molmol-2k_p2-r5.ebuild
index 16e8b8553600..d788caa2005a 100644
--- a/sci-chemistry/molmol/molmol-2k_p2-r5.ebuild
+++ b/sci-chemistry/molmol/molmol-2k_p2-r5.ebuild
@@ -12,7 +12,8 @@ DESCRIPTION="Publication-quality molecular visualization package"
HOMEPAGE="http://hugin.ethz.ch/wuthrich/software/molmol/index.html"
SRC_URI="
ftp://ftp.mol.biol.ethz.ch/software/MOLMOL/unix-gzip/${MY_P}-src.tar.gz
- ftp://ftp.mol.biol.ethz.ch/software/MOLMOL/unix-gzip/${MY_P}-doc.tar.gz"
+ ftp://ftp.mol.biol.ethz.ch/software/MOLMOL/unix-gzip/${MY_P}-doc.tar.gz
+ https://dev.gentoo.org/~soap/distfiles/${PN}-patches.tbz2"
LICENSE="molmol"
SLOT="0"
@@ -45,10 +46,10 @@ pkg_setup() {
src_prepare() {
rm -rf tiff*
# Patch from http://pjf.net/science/molmol.html, where src.rpm is provided
- epatch "${FILESDIR}"/pjf_RH9_molmol2k2.diff
+ epatch "${WORKDIR}"/patches/pjf_RH9_molmol2k2.diff
- epatch "${FILESDIR}"/ldflags.patch
- epatch "${FILESDIR}"/opengl.patch
+ epatch "${WORKDIR}"/patches/ldflags.patch
+ epatch "${WORKDIR}"/patches/opengl.patch
ln -s makedef.lnx "${S}"/makedef || die
@@ -61,14 +62,14 @@ src_prepare() {
-e "s:^CC.*:CC = $(tc-getCC):" \
-i "${S}"/makedef || die
- epatch "${FILESDIR}"/cast.patch
- epatch "${FILESDIR}"/libpng15.patch
+ epatch "${WORKDIR}"/patches/cast.patch
+ epatch "${WORKDIR}"/patches/libpng15.patch
# patch from fink
# fixes numerous bad bracings and hopefully the OGL bug 429974
- epatch "${FILESDIR}"/${P}-fink.patch
+ epatch "${WORKDIR}"/patches/${P}-fink.patch
- epatch "${FILESDIR}"/wild.patch
+ epatch "${WORKDIR}"/patches/wild.patch
tc-export AR
}