You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
223 lines
6.5 KiB
223 lines
6.5 KiB
diff --git a/src/file_.cpp b/src/file_.cpp
|
|
index 4071886..6bfa648 100644
|
|
--- a/src/file_.cpp
|
|
+++ b/src/file_.cpp
|
|
@@ -347,10 +347,10 @@ int i;
|
|
if (i>0) sleep ( 1 );
|
|
#endif
|
|
if (TextMode) {
|
|
- if (ReadOnly) hFile = fopen ( FName,"r" );
|
|
+ if (ReadOnly) hFile = fopen ( FName,"rt" );
|
|
else hFile = fopen ( FName,"r+t" );
|
|
} else {
|
|
- if (ReadOnly) hFile = fopen ( FName,"r" );
|
|
+ if (ReadOnly) hFile = fopen ( FName,"rb" );
|
|
else hFile = fopen ( FName,"r+b" );
|
|
}
|
|
#ifndef _MVS
|
|
diff --git a/src/machine_.h b/src/machine_.h
|
|
index 2e81264..7b18675 100644
|
|
--- a/src/machine_.h
|
|
+++ b/src/machine_.h
|
|
@@ -127,8 +127,12 @@
|
|
# define CALL_LIKE_VMS 1
|
|
|
|
// MVS stands for Microsoft Visual Studio
|
|
-#elif defined(_MVS)
|
|
+#elif defined(_MSC_VER)
|
|
+# if (_MSC_VER) >= 800
|
|
+# define CALL_LIKE_MVS 2
|
|
+# else
|
|
# define CALL_LIKE_MVS 1
|
|
+# endif
|
|
|
|
#elif defined(F2C) || defined(G77)
|
|
# define CALL_LIKE_SUN 8
|
|
@@ -400,6 +404,36 @@ typedef double apireal; // FORTRAN real*8
|
|
|
|
#elif defined(CALL_LIKE_MVS)
|
|
|
|
+# if ( CALL_LIKE_MVS == 2 )
|
|
+
|
|
+ typedef pstr fpstr;
|
|
+
|
|
+# define FTN_STR(s) s
|
|
+# define FTN_LEN(s) s##_len
|
|
+
|
|
+# define char_struct(s) \
|
|
+ pstr s; \
|
|
+ int s##_len;
|
|
+# define fill_char_struct(s,str) \
|
|
+ s = str; \
|
|
+ s##_len = strlen(str);
|
|
+
|
|
+# ifdef __cplusplus
|
|
+# define FORTRAN_SUBR(NAME,name,p_sun,p_stardent,p_mvs) \
|
|
+ extern "C" void NAME p_sun
|
|
+# else
|
|
+# define FORTRAN_SUBR(NAME,name,p_sun,p_stardent,p_mvs) \
|
|
+ void NAME p_sun
|
|
+# endif
|
|
+
|
|
+# define FORTRAN_EXTERN(NAME,name,p_sun,p_stardent,p_mvs) \
|
|
+ extern "C" void NAME p_sun
|
|
+
|
|
+# define FORTRAN_CALL(NAME,name,p_sun,p_stardent,p_mvs) \
|
|
+ NAME p_sun
|
|
+
|
|
+# else
|
|
+
|
|
typedef pstr fpstr;
|
|
|
|
# define FTN_STR(s) s
|
|
@@ -425,7 +459,7 @@ typedef double apireal; // FORTRAN real*8
|
|
|
|
# define FORTRAN_CALL(NAME,name,p_sun,p_stardent,p_mvs) \
|
|
NAME p_mvs
|
|
-
|
|
+# endif
|
|
#else
|
|
|
|
# error Unknown machine!!!
|
|
diff --git a/src/mmdb_atom.h b/src/mmdb_atom.h
|
|
index 45049c8..5d0af2a 100644
|
|
--- a/src/mmdb_atom.h
|
|
+++ b/src/mmdb_atom.h
|
|
@@ -290,7 +290,7 @@ class CAtom : public CUDData {
|
|
void CalcAtomStatistics ( RSAtomStat AS );
|
|
realtype GetDist2 ( PCAtom a );
|
|
realtype GetDist2 ( PCAtom a, mat44 & tm ); // tm applies to A
|
|
- realtype GetDist2 ( PCAtom a, mat33 & r, vect3 & t );// tm applies to A
|
|
+ realtype GetDist2 ( PCAtom a, mat33 & r, vect3 & t ); // tm applies to A
|
|
realtype GetDist2 ( realtype ax, realtype ay, realtype az );
|
|
|
|
// GetCosine(a1,a2) calculates cosine of angle a1-this-a2,
|
|
diff --git a/src/mmdb_chain.cpp b/src/mmdb_chain.cpp
|
|
index a6f66c2..24baa37 100644
|
|
--- a/src/mmdb_chain.cpp
|
|
+++ b/src/mmdb_chain.cpp
|
|
@@ -672,7 +672,8 @@ int i,k,sN;
|
|
i = 0;
|
|
sN = 1;
|
|
while (i<numRes) {
|
|
- PutInteger ( &(S[8]),sN,2 );
|
|
+ //PutInteger ( &(S[8]),sN,2 );
|
|
+ PutInteger ( &(S[7]),sN,3 );
|
|
k = 19;
|
|
while ((i<numRes) && (k<70)) {
|
|
if (resName[i][0])
|
|
diff --git a/src/mmdb_rwbrook.cpp b/src/mmdb_rwbrook.cpp
|
|
index dc33086..5d319c3 100644
|
|
--- a/src/mmdb_rwbrook.cpp
|
|
+++ b/src/mmdb_rwbrook.cpp
|
|
@@ -1478,7 +1478,6 @@ AltLoc altLoc;
|
|
SegID sgID;
|
|
Element element;
|
|
PCAtom atom;
|
|
-pstr p;
|
|
char charge[10];
|
|
|
|
strcpy ( LastFunc,"MMDB_F_Atom" );
|
|
@@ -1552,10 +1551,9 @@ char charge[10];
|
|
} else
|
|
charge [0] = char(0);
|
|
|
|
-/*
|
|
if (FTN_STR(ID)[0]==' ') {
|
|
atomName[0] = char(0);
|
|
- if ((FTN_STR(AtNam)[1]=='H') ||
|
|
+ if ((FTN_STR(AtNam)[1]=='H') && (FTN_STR(AtNam)[0]!='H') ||
|
|
((FTN_STR(AtNam)[1]=='D') && (FTN_STR(ID)[2]=='D'))) {
|
|
i = 0;
|
|
while ((i<nHydAtomNames) &&
|
|
@@ -1563,12 +1561,16 @@ char charge[10];
|
|
if (i<nHydAtomNames)
|
|
GetStrTer ( atomName,FTN_STR(AtNam),4,5,FTN_LEN(AtNam) );
|
|
}
|
|
- if (!atomName[0]) {
|
|
+
|
|
+ if ((FTN_STR(AtNam)[0]=='A') || ((FTN_STR(AtNam)[0]=='N') && (FTN_STR(ID)[1]!='N'))) {
|
|
+ GetStrTer ( atomName,FTN_STR(AtNam),4,5,FTN_LEN(AtNam) );
|
|
+ } else if ((FTN_STR(ID)[1]=='N') && ( (FTN_STR(AtNam)[0]=='N') && (FTN_STR(AtNam)[1]=='N') )) {
|
|
+ GetStrTer ( atomName,FTN_STR(AtNam),4,5,FTN_LEN(AtNam) );
|
|
+ } else if (!atomName[0]) {
|
|
atomName[0] = ' ';
|
|
GetStrTer ( &(atomName[1]),FTN_STR(AtNam),3,4,FTN_LEN(AtNam) );
|
|
}
|
|
} else
|
|
-*/
|
|
GetStrTer ( atomName,FTN_STR(AtNam),4,5,4 );
|
|
|
|
|
|
diff --git a/src/mmdb_sbase0.cpp b/src/mmdb_sbase0.cpp
|
|
index a210d62..cb8d719 100644
|
|
--- a/src/mmdb_sbase0.cpp
|
|
+++ b/src/mmdb_sbase0.cpp
|
|
@@ -1320,7 +1320,11 @@ PPCSBIndex Index1;
|
|
dirpath = new char[i+10];
|
|
strcpy ( dirpath,path );
|
|
if (i>0) {
|
|
+#if defined(_MSC_VER) || defined (WIN32)
|
|
+ if (dirpath[i-1]!='\\') strcat ( dirpath,"\\" );
|
|
+#else
|
|
if (dirpath[i-1]!='/') strcat ( dirpath,"/" );
|
|
+#endif
|
|
}
|
|
}
|
|
|
|
diff --git a/src/mmdb_selmngr.cpp b/src/mmdb_selmngr.cpp
|
|
index b923529..4395dde 100644
|
|
--- a/src/mmdb_selmngr.cpp
|
|
+++ b/src/mmdb_selmngr.cpp
|
|
@@ -1158,7 +1158,7 @@ void CMMDBSelManager::Select (
|
|
int selKey // selection key
|
|
) {
|
|
int i,j,k,n,m1,m2,c, sk,nsel;
|
|
-Boolean noRes,modelSel,chainSel,resSel,selAND;
|
|
+Boolean noRes,modelSel(False),chainSel,resSel,selAND;
|
|
PCModel model;
|
|
PCChain chain;
|
|
PCResidue res;
|
|
diff --git a/src/mmdb_title.cpp b/src/mmdb_title.cpp
|
|
index b0b2ae5..627173f 100644
|
|
--- a/src/mmdb_title.cpp
|
|
+++ b/src/mmdb_title.cpp
|
|
@@ -1381,6 +1381,10 @@ MakeStreamFunctions(CRemark)
|
|
#define R350_CHAINS 2
|
|
#define R350_BIOMT 3
|
|
|
|
+#ifdef _WIN32
|
|
+#define strcasestr(s, t) strstr(strupr(s), t)
|
|
+#endif
|
|
+
|
|
void getRemarkKey ( RPCRemark rem, int & lkey ) {
|
|
if (rem) {
|
|
if (rem->remarkNum!=350) lkey = R350_END;
|
|
@@ -1458,7 +1462,7 @@ int l,lkey,nAdd,j;
|
|
|
|
while ((i<l) && (lkey==R350_NONE)) {
|
|
|
|
- p = strcasestr ( rem->Remark,"CHAINS:" );
|
|
+ p = strcasestr( rem->Remark,"CHAINS:" );
|
|
if (p) p += 7;
|
|
else {
|
|
p = rem->Remark;
|
|
@@ -1513,7 +1517,7 @@ pstr p1,p2;
|
|
int l,j,lkey;
|
|
|
|
sprintf ( PN,"BIOMT%1i",biomtNo );
|
|
- p1 = strcasestr ( rem->Remark,PN );
|
|
+ p1 = strcasestr( rem->Remark,PN );
|
|
if (!p1) return R350_ERRBIOMT;
|
|
|
|
p1 += 6;
|
|
@@ -1972,7 +1976,7 @@ int i,l;
|
|
if (rem) {
|
|
if (rem->remarkNum==2) {
|
|
if (rem->Remark) {
|
|
- p = strcasestr ( rem->Remark,"RESOLUTION" );
|
|
+ p = strcasestr( rem->Remark,"RESOLUTION" );
|
|
if (p) {
|
|
while ((*p) && (*p!=' ')) p++;
|
|
if (*p) {
|