From 502113bf3e47ab106633cfcaf678e115e6876901 Mon Sep 17 00:00:00 2001 From: "davidmc%netscape.com" Date: Wed, 21 Apr 1999 23:51:22 +0000 Subject: [PATCH] fix morkEnv::OidAsHex() to print a scope < 0x80 as a plain text byte instead of ^hex hex when the character is a name byte git-svn-id: svn://10.0.0.236/trunk@28578 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/db/mork/src/morkEnv.cpp | 22 +++++++++++++++++----- mozilla/mailnews/db/mork/src/morkEnv.cpp | 22 +++++++++++++++++----- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/mozilla/db/mork/src/morkEnv.cpp b/mozilla/db/mork/src/morkEnv.cpp index 2140298d9c9..caa20a6f23c 100644 --- a/mozilla/db/mork/src/morkEnv.cpp +++ b/mozilla/db/mork/src/morkEnv.cpp @@ -178,12 +178,24 @@ morkEnv::OidAsHex(void* outBuf, const mdbOid& inOid) // sprintf(buf, "%lX:^%lX", (long) inOid.mOid_Id, (long) inOid.mOid_Scope); { mork_u1* p = (mork_u1*) outBuf; - mork_size idSize = this->TokenAsHex(p, inOid.mOid_Id); - p += idSize; + mork_size outSize = this->TokenAsHex(p, inOid.mOid_Id); + p += outSize; *p++ = ':'; - *p++ = '^'; - mork_size scopeSize = this->TokenAsHex(p, inOid.mOid_Scope); - return idSize + scopeSize + 2; + + mork_scope scope = inOid.mOid_Scope; + if ( scope < 0x80 && morkCh_IsName((mork_ch) scope) ) + { + *p++ = (mork_u1) scope; + *p = 0; // null termination + outSize += 2; + } + else + { + *p++ = '^'; + mork_size scopeSize = this->TokenAsHex(p, scope); + outSize += scopeSize + 2; + } + return outSize; } diff --git a/mozilla/mailnews/db/mork/src/morkEnv.cpp b/mozilla/mailnews/db/mork/src/morkEnv.cpp index 2140298d9c9..caa20a6f23c 100644 --- a/mozilla/mailnews/db/mork/src/morkEnv.cpp +++ b/mozilla/mailnews/db/mork/src/morkEnv.cpp @@ -178,12 +178,24 @@ morkEnv::OidAsHex(void* outBuf, const mdbOid& inOid) // sprintf(buf, "%lX:^%lX", (long) inOid.mOid_Id, (long) inOid.mOid_Scope); { mork_u1* p = (mork_u1*) outBuf; - mork_size idSize = this->TokenAsHex(p, inOid.mOid_Id); - p += idSize; + mork_size outSize = this->TokenAsHex(p, inOid.mOid_Id); + p += outSize; *p++ = ':'; - *p++ = '^'; - mork_size scopeSize = this->TokenAsHex(p, inOid.mOid_Scope); - return idSize + scopeSize + 2; + + mork_scope scope = inOid.mOid_Scope; + if ( scope < 0x80 && morkCh_IsName((mork_ch) scope) ) + { + *p++ = (mork_u1) scope; + *p = 0; // null termination + outSize += 2; + } + else + { + *p++ = '^'; + mork_size scopeSize = this->TokenAsHex(p, scope); + outSize += scopeSize + 2; + } + return outSize; }