Action codes: + = Examined, looks fine. Some of these were fixed by Bob and are not fine in the CdrServer from last week. - = Unexamined, looks okay based on what I see in this file & = Examined, looks wrong, fixed it (or tried to) = = Same as '&' except that the change is already recorded elsewhere ? = Unchanged but maybe should be. Indented comments appear below some lines. The comment refers to the line above. Note: I removed all of the following patterns from the file after quick checks: "#include <.*>" "std::vector<.*>" "std::pair<.*>" "std::set<.*>" ": \*" Comments ": *\/\/" Comments [1003 lines shown in this report] SELECT.*title ------------------------------ + CdrDoc.cpp:176: std::string qry = "SELECT id, title_filter, xml_schema " & CdrDoc.cpp:497: "SELECT v.val_status, v.val_date, v.publishable, v.title, v.xml, " Entity conversion done on the selection getString - fixed & CdrDocTypes.cpp:119: cdr::db::ResultSet r = s.executeQuery("SELECT d.title" Existing code was fine but I changed it to conform to new convention that does the conversion on output instead of database retrieval. & CdrDocTypes.cpp:611: cdr::db::ResultSet r = s.executeQuery(" SELECT d.title, b.data " Added entity conversion of title and css to elements in XML string: "titlecss" + CdrFilter.cpp:1032: const char* const query = " SELECT title " See problem on line 1041 - CdrFilter.cpp:1054: std::string qry = "SELECT xml FROM document WHERE title = ?"; & CdrLink.cpp:564: "SELECT DISTINCT source_doc, title, target_frag " No bug on this line but there was a bug on line 580 that inserted the title into something that would become XML without converting entities. Fixed line 580 & CdrLink.cpp:2320: query = "SELECT title FROM document WHERE id = ?"; Again, later use of unconverted title on line 2332. Fixed. + CdrReport.cpp:1282: string query = "SELECT DISTINCT d.id, d.title " + CdrReport.cpp:1323: " SELECT DISTINCT d.id, d.title " entConvert ------------------------------ ? CdrCache.cpp:315: cdr::entConvert(cdr::dom::getTextContent(node)).toUtf8(); This is wrong by the current convention. Should do the conversion later. However I'm not certain that none of the complex code for upcoding and tree walking depends on it. So I'm leaving it alone. & CdrDoc.cpp:396: title = cdr::entConvert (rs.getString (3)); Entity conversion done on the selection getString - fixed & CdrDoc.cpp:401: comment = cdr::entConvert (rs.getString (8)); Entity conversion done on the selection getString - fixed & CdrDoc.cpp:518: title = cdr::entConvert (rs.getString(4)); Entity conversion done on the selection getString - fixed + CdrDoc.cpp:1296: + L" " + cdr::entConvert(title) = CdrDocTypes.cpp:128: String name = cdr::entConvert(r.getString(1)); See previous CdrDocTypes.cpp: 119 - CdrDocTypes.cpp:264: resp << L"" << cdr::entConvert(*j++) + CdrDom.cpp:296: os << cdr::entConvert(value); + CdrDom.cpp:299: os << L""; + CdrDom.cpp:319: cdr::entConvert(attribute.getNodeValue()); & CdrFilter.cpp:1041: return cdr::entConvert(title); Existing code worked but I changed it to conform to new convention that does the conversion on output instead of database retrieval. There is only one line that invokes this static function. I fixed it. + CdrFilter.cpp:1903: << cdr::entConvert(name) + CdrFilter.cpp:1905: << cdr::entConvert(desc) + CdrFilter.cpp:1908: response << L"" << cdr::entConvert(notes) + CdrFilter.cpp:1945: << cdr::entConvert(name) + CdrFilter.cpp:1952: << cdr::entConvert(name) + CdrFilter.cpp:2066: << cdr::entConvert(name) + CdrFilter.cpp:2106: << cdr::entConvert(title) & CdrFilter.cpp:2409: cdr::String wValue = cdr::entConvert(rs.getString(i)); Changed for new convention. The change is actually slightly more efficient. & CdrGetDoc.cpp:183: cdr::String title = cdr::entConvert(rs.getString(3)); Fixed for new conventions & CdrGetDoc.cpp:186: cdr::String comment = cdr::entConvert(rs.getString(6)); Fixed for new conventions + CdrGetDoc.cpp:309: cdrDoc += readOnlyWrap (cdr::entConvert(docVer->title), L"DocTitle") This one looks like it was a double conversion in the past, but CdrDoc constructor now fixed to pass an unconverted string. + CdrGetDoc.cpp:317: cdrDoc += readOnlyWrap (cdr::entConvert(docVer->comment), & CdrGetDoc.cpp:467: cdr::String title = cdr::entConvert(rs.getString(3)); Fixed for new conventions & CdrGetDoc.cpp:468: cdr::String comment = cdr::entConvert(rs.getString(4)); Fixed for new conventions & CdrGetDoc.cpp:523: cdr::String title = cdr::entConvert(rs.getString(3)); Fixed for new conventions & CdrGetDoc.cpp:524: cdr::String comment = cdr::entConvert(rs.getString(4)); Fixed for new conventions + CdrGlossaryMap.cpp:84: response << L"" << cdr::entConvert(name) << L""; + CdrGlossaryMap.cpp:87: response << L"" << cdr::entConvert(*phrase) + CdrGlossaryMap.cpp:143: response << L"" << cdr::entConvert(name) << L""; + CdrGlossaryMap.cpp:146: response << L"" << cdr::entConvert(*phrase) + CdrLink.cpp:2225: id, cdr::entConvert(title).c_str()); + CdrLinkProcs.cpp:990: id, cdr::entConvert(title).c_str()); + CdrMergeProt.cpp:209: cdr::String encoded = cdr::entConvert(value); & CdrReport.cpp:584: cdr::String title = cdr::entConvert(rs.getString(2)); Changed 584, 593 and 621 to follow new convention of converting upon output rather than database fetch. & CdrReport.cpp:666: cdr::String title = cdr::entConvert(rs.getString(2)); Changed lines 668, 671 for new convention. + CdrReport.cpp:791: << cdr::entConvert(poName) + CdrReport.cpp:865: << cdr::entConvert(*titleIter++) & CdrReport.cpp:932: cdr::String termName = cdr::entConvert(rs.getString(2)); & CdrReport.cpp:933: cdr::String menuType = cdr::entConvert(rs.getString(3)); & CdrReport.cpp:934: cdr::String menuStatus = cdr::entConvert(rs.getString(4)); & CdrReport.cpp:937: cdr::String sortString = cdr::entConvert(rs.getString(7)); Changed all four of the above for new convention. + CdrReport.cpp:949: << cdr::entConvert(displayName) + CdrReport.cpp:1058: << cdr::entConvert(value) << L"\n"; - CdrReport.cpp:1303: << cdr::entConvert(name) - CdrReport.cpp:1348: << cdr::entConvert(title) + CdrSearch.cpp:124: cdr::String title = cdr::entConvert(rs.getString(2)); Took this one on faith. It would take a lot of backtracing to find an error, but errors are hardly ever in extra entConverts. - CdrString.cpp:160:cdr::String cdr::entConvert(const String& inStr, bool doQuotes) CdrVersion.cpp:1177: << entConvert(comment.c_str()) CdrXsd.cpp:517: << cdr::entConvert(rules[i].getContext(), true) CdrXsd.cpp:524: << cdr::entConvert(assertion.getTest(), true) CdrXsd.cpp:528: << cdr::entConvert(msg, true) "<.*>" - but removed all of the following after quick check on each pattern ------------------------------ CdrActions.cpp:39: resp = L"\n"; CdrActions.cpp:42: resp += L"" + name CdrActions.cpp:43: + L"" + flag CdrActions.cpp:44: + L"\n"; CdrActions.cpp:47: return L"\n"; CdrActions.cpp:49: return resp + L"\n"; CdrActions.cpp:94: cdr::String resp = L"" CdrActions.cpp:95: L"" + name + L"" CdrActions.cpp:96: L"" + flag + L"" CdrActions.cpp:97: L"" + comment + L"" CdrActions.cpp:98: L""; CdrActions.cpp:159: return L""; CdrActions.cpp:217: " AND doc_type <> 1"; CdrActions.cpp:263: return L""; CdrActions.cpp:316: return L" \n"; CdrAddGrp.cpp:19:typedef std::list AuthList; CdrAddGrp.cpp:153: return L" \n"; CdrAddUsr.cpp:139: return L" \n"; + CdrCache.cpp:422: nameXml = makeTermStart() + ""; + CdrCache.cpp:444: ">" + pParent->getName() + + CdrCache.cpp:445: "\n"; + CdrCache.cpp:450: familyXml += "\n"; + CdrCache.cpp:470: termStart += cdrRef + ">\n " + name + "\n"; See comment for CdrCache.cpp:315. All of these would be potentially affected if I fix 315, so I've left them all alone. + CdrCache.cpp:542: return cdr::String(L""); CdrCheckAuth.cpp:64: return L" \n"; CdrCheckAuth.cpp:65: cdr::String response = L" \n"; CdrCheckAuth.cpp:73: response += L" " CdrCheckAuth.cpp:75: + L""; CdrCheckAuth.cpp:77: response += L"" CdrCheckAuth.cpp:79: + L""; CdrCheckAuth.cpp:80: response += L"\n"; CdrCheckAuth.cpp:83: response += L" \n"; CdrCommand.cpp:248: return L" <" + name + L"Resp>\n Got your Cdr" + name + CdrCommand.cpp:249: L" command ... can't process it yet.\n "; CdrDOMtoString.cpp:93: result = "\n"; CdrDOMtoString.cpp:138: result += "'; CdrDOMtoString.cpp:163: result = ""; CdrDOMtoString.cpp:169: result = ""; CdrDbConnection.cpp:168: rc = SQLConnect(hdbc, const_cast(dsn), SQL_NTS, CdrDbConnection.cpp:169: const_cast(uid), SQL_NTS, CdrDbConnection.cpp:170: const_cast(pwd), SQL_NTS); CdrDbConnection.cpp:223: master(const_cast(&c)) CdrDbConnection.cpp:244: master = const_cast(&c); CdrDbConnection.cpp:365: reinterpret_cast(setting), CdrDbConnection.cpp:499: return Connection(reinterpret_cast(dsn.c_str()), CdrDbConnection.cpp:500: reinterpret_cast(uid.c_str()), CdrDbConnection.cpp:501: reinterpret_cast(pwd.c_str()), CdrDbPreparedStatement.cpp:93: return static_cast(this)->executeQuery(query.c_str()); CdrDbPreparedStatement.cpp:115: return static_cast(this)->executeUpdate(query.c_str()); CdrDbResultSet.cpp:185: if (pos < 1 || pos > metaData.getColumnCount()) CdrDbResultSet.cpp:251: if (pos < 1 || pos > metaData.getColumnCount()) CdrDelGrp.cpp:70: return L" \n"; CdrDelUsr.cpp:65: return L" \n"; + CdrDoc.cpp:1214: cdr::String resp = cdr::String (L" \n" + CdrDoc.cpp:1215: + L" " + doc.getTextId() + L"\n" + CdrDoc.cpp:1237: resp += L" \n"; - CdrDoc.cpp:1295: + L"\n" + CdrDoc.cpp:1296: + L" " + cdr::entConvert(title) - CdrDoc.cpp:1297: + L"\n" - CdrDoc.cpp:1298: + L" " + activeStatus - CdrDoc.cpp:1299: + L"\n" - CdrDoc.cpp:1300: + L"\n" - CdrDoc.cpp:1302: + L"\n\n"; - CdrDoc.cpp:1495: cdr::String resp = L" \n" - CdrDoc.cpp:1496: L" " + docIdStr + L"\n"; - CdrDoc.cpp:1503: return (resp + L" \n"); - CdrDoc.cpp:1638: if (revFilterLevel < 1 || revFilterLevel > 3) + CdrDoc.cpp:1829: cdr::String response = L" " + + CdrDoc.cpp:1831: L"\n"; - CdrDoc.cpp:2129: return L""; - CdrDoc.cpp:2190: return (L""); - CdrDoc.cpp:2715: L"\n" - CdrDoc.cpp:2720: \nL" - CdrDoc.cpp:2722: L"\n" - CdrDoc.cpp:2723: L" \n" - CdrDoc.cpp:2724: L" \n" - CdrDoc.cpp:2725: L" \n" - CdrDoc.cpp:2726: L"\n" - CdrDoc.cpp:2741: L"\n" - CdrDoc.cpp:2742: L"\n" - CdrDoc.cpp:2743: L"@@DummyCdrId@@\n" - CdrDoc.cpp:2744: L"\n" - CdrDoc.cpp:2745: L"\n" - CdrDoc.cpp:2746: L"\n" - CdrDoc.cpp:2747: L"\n" - CdrDoc.cpp:2754: L"\n" - CdrDoc.cpp:2755: L"\n" - CdrDoc.cpp:2756: L"\n" - CdrDoc.cpp:2757: L"\n" - CdrDoc.cpp:2758: L"\n" - CdrDoc.cpp:2759: L"\n"; - CdrDoc.cpp:3012: query += " AND id <> ?"; - CdrDoc.cpp:3060: os << L""; - CdrDoc.cpp:3070: os << L"" << stringDocId(id) << L""; - CdrDoc.cpp:3081: os << L""; An argument could be made for converting this, but I wasn't sure and left it alone. - CdrDoc.cpp:3254: bool inComment; // We're inside an xml comment - CdrDocTypes.cpp:93: response = L" \n"; + CdrDocTypes.cpp:94: response += L" " + name + L"\n"; + CdrDocTypes.cpp:97: return L" \n"; + CdrDocTypes.cpp:99: return response + L" \n"; + CdrDocTypes.cpp:132: response = L""; & CdrDocTypes.cpp:133: response += L"" + name + L""; Fixed by Bob + CdrDocTypes.cpp:136: return L""; + CdrDocTypes.cpp:138: return response + L""; - CdrDocTypes.cpp:181: static_cast(node); - CdrDocTypes.cpp:231: std::auto_ptr schemaPtr(schema); - CdrDocTypes.cpp:246: << L"'>"; - CdrDocTypes.cpp:248: resp << L"makeDtd(schemaName) : L"") - CdrDocTypes.cpp:250: << L"]]>"; - CdrDocTypes.cpp:251: resp << L"" - CdrDocTypes.cpp:253: << L""; + CdrDocTypes.cpp:261: resp << L""; + CdrDocTypes.cpp:264: resp << L"" << cdr::entConvert(*j++) + CdrDocTypes.cpp:265: << L""; - CdrDocTypes.cpp:266: resp << L""; - CdrDocTypes.cpp:271: resp << L""; + CdrDocTypes.cpp:274: resp << L"" << *iter++ << L""; Works because Element names can't have entities. - CdrDocTypes.cpp:275: resp << L""; & CdrDocTypes.cpp:278: resp << L"" << comment << L""; Extracting comment from the database and inserting it into serial XML. - CdrDocTypes.cpp:279: resp << L""; - CdrDocTypes.cpp:305: static_cast(node); - CdrDocTypes.cpp:406: return L""; - CdrDocTypes.cpp:426: static_cast(node); - CdrDocTypes.cpp:515: return L""; - CdrDocTypes.cpp:540: static_cast(node); - CdrDocTypes.cpp:591: return L""; - CdrDocTypes.cpp:620: cdr::String resp = L""; = CdrDocTypes.cpp:628: resp += L"" + title + L"" Fixed, see above = CdrDocTypes.cpp:629: + css + L""; Fixed, see above - CdrDocTypes.cpp:633: return resp + L""; + CdrDom.cpp:242: pNode = static_cast + CdrDom.cpp:299: os << L""; - CdrDom.cpp:303: os << L""; - CdrDom.cpp:335: os << L">"; ? CdrDom.cpp:340: os << L""; ? CdrDom.cpp:343: os << L"/>"; ? CdrDom.cpp:356: os << L""; ? CdrDom.cpp:359: os << L""; I'm not certain about the above '?' lines. But if they were wrong, wouldn't we know about it by now? Or would we? This one is rather deep and I don't have time for a deep investigation right now. CdrExternalMap.cpp:97: return L"\n"; - CdrFilter.cpp:69: vector& filters, - CdrFilter.cpp:76: vector& filterSet, - CdrFilter.cpp:122: result += static_cast(c); - CdrFilter.cpp:157: vector parms; - CdrFilter.cpp:424: vector uri_list; - CdrFilter.cpp:455: ThreadData* td = static_cast(thread_data); - CdrFilter.cpp:481: static_cast(thread_data)->filter_messages + CdrFilter.cpp:482: += "" + msg + "\n"; Think this is okay. - CdrFilter.cpp:517: ThreadData* thread_data = static_cast(data); - CdrFilter.cpp:593: && !isdigit(static_cast(version_str[0])) + CdrFilter.cpp:630: u.doc = "" + CdrFilter.cpp:632: + ""; - CdrFilter.cpp:644: u.doc = "Y"; - CdrFilter.cpp:664: u.doc = "" + thread_data->DocId.toUtf8() + ""; - CdrFilter.cpp:679: u.doc = string("") + buf + ""; + CdrFilter.cpp:684: u.doc = string("") + getPrettyUrl(parms).toUtf8() + + CdrFilter.cpp:685: ""; + CdrFilter.cpp:749: static_cast(data)->uri_list[handle].inuse = false; The getPrettyUrl() code rolls entity conversion by hand. I decided to leave it alone rather than touch it. It's only called in one place and it does work. (Sometimes it seems wiser to make an exception than follow the rule.) + CdrFilter.cpp:758: ThreadData* thread_data = static_cast(data); - CdrFilter.cpp:790: ThreadData* thread_data = static_cast(data); - CdrFilter.cpp:1084: vector filters; - CdrFilter.cpp:1128: vector filters; - CdrFilter.cpp:1157: static_cast(child); - CdrFilter.cpp:1202: static_cast(child); - CdrFilter.cpp:1249: pvector.push_back(pair(name, value)); + CdrFilter.cpp:1269: result = output ? "\n" : ""; + CdrFilter.cpp:1271: result += "" + messages + "\n"; Think this is right. + CdrFilter.cpp:1273: return L"" + CdrFilter.cpp:1275: + L"\n"; - CdrFilter.cpp:1294: vector& filters, - CdrFilter.cpp:1358: vector& filterSet, - CdrFilter.cpp:1623: L"" See note above on getPrettyUrl() for this and following lines - CdrFilter.cpp:1627: L" " - CdrFilter.cpp:1629: L" " + guid + L"" - CdrFilter.cpp:1630: L" " - CdrFilter.cpp:1631: L" " - CdrFilter.cpp:1632: L" " - CdrFilter.cpp:1633: L""; - CdrFilter.cpp:1701: static_cast(child); - CdrFilter.cpp:1711: static_cast(child); + CdrFilter.cpp:1902: response << L"" + CdrFilter.cpp:1904: << L"" + CdrFilter.cpp:1906: << L""; + CdrFilter.cpp:1908: response << L"" << cdr::entConvert(notes) + CdrFilter.cpp:1909: << L""; + CdrFilter.cpp:1944: << L"'>" + CdrFilter.cpp:1946: << L""; + CdrFilter.cpp:1951: << L"'>" + CdrFilter.cpp:1953: << L""; + CdrFilter.cpp:1956: response << L""; - CdrFilter.cpp:2033: return L""; - CdrFilter.cpp:2053: response << L""; - CdrFilter.cpp:2065: << L"'>" + CdrFilter.cpp:2067: << L""; + CdrFilter.cpp:2069: response << L""; + CdrFilter.cpp:2090: response << L""; + CdrFilter.cpp:2105: << L"'>" + CdrFilter.cpp:2107: << L""; + CdrFilter.cpp:2109: response << L""; - CdrFilter.cpp:2179: return "0"; - CdrFilter.cpp:2182: return "0"; - CdrFilter.cpp:2194: return "0"; - CdrFilter.cpp:2197: os << "" << versionNum << ""; - CdrFilter.cpp:2206: return ""; - CdrFilter.cpp:2213: return ""; - CdrFilter.cpp:2215: os << "" << parms.substr(0, 5) << ""; - CdrFilter.cpp:2277: return "" + latestDate.substr(0, 10) - CdrFilter.cpp:2278: + ""; - CdrFilter.cpp:2280: return "" + lastModDate.substr(0, 10) - CdrFilter.cpp:2281: + ""; - CdrFilter.cpp:2285: return "" + dateFirstPub.toUtf8().substr(0, 10) - CdrFilter.cpp:2286: + ""; - CdrFilter.cpp:2287: return ""; - CdrFilter.cpp:2332: vector qryParms; + CdrFilter.cpp:2335: string result("\n"); - CdrFilter.cpp:2393: vector colNames; - CdrFilter.cpp:2404: sprintf(buf, "\n ", rowId); & CdrFilter.cpp:2419: result += ">" + wValue.toUtf8() + ""; Fixed along with fix on line 2409 - CdrFilter.cpp:2423: result += "\n "; - CdrFilter.cpp:2428: result += "\n"; - CdrFilter.cpp:2529: result = "\n\n"; - CdrFilter.cpp:2532: result += " "; - CdrFilter.cpp:2534: result += "\n"; - CdrFilter.cpp:2538: result += "\n"; - CdrFilter.cpp:2673: return ""; - CdrFilter.cpp:2682: return "DROP"; - CdrFilter.cpp:2690: return ""; - CdrFilter.cpp:2694: os << "" << idString.toUtf8() << ""; - CdrGetDoc.cpp:200: + L"'>\n\n"; - CdrGetDoc.cpp:214: cdrDoc += L"\n"; - CdrGetDoc.cpp:239: cdrDoc += L"\n"; - CdrGetDoc.cpp:300: + L"'>\n\n"; + CdrGetDoc.cpp:321: cdrDoc += L"\n"; + CdrGetDoc.cpp:335: cdrDoc += L"\n"; - CdrGetDoc.cpp:408: return (L"\n\n"); - CdrGetDoc.cpp:433: return (L"" - CdrGetDoc.cpp:434: + encodedBlob + L"\n\n"); - CdrGetDoc.cpp:473: cdr::String cdrDoc = cdr::String(L"") - CdrGetDoc.cpp:475: + L""; - CdrGetDoc.cpp:479: cdrDoc += cdr::String(L"") + valDate + L""; & CdrGetDoc.cpp:481: cdrDoc += cdr::String(L"") + title + L""; Fixed as part of line 321 & CdrGetDoc.cpp:483: cdrDoc += cdr::String(L"") + comment + L""; Fixed as part of line 467 & CdrGetDoc.cpp:485: cdrDoc += L"" + rrString + L""; Fixed as part of line 468 - CdrGetDoc.cpp:487: return L"" + cdrDoc - CdrGetDoc.cpp:489: + L"\n"; - CdrGetDoc.cpp:528: cdr::String cdrDoc = cdr::String(L"") - CdrGetDoc.cpp:530: + L""; - CdrGetDoc.cpp:534: cdrDoc += cdr::String(L"") + valDate + L""; & CdrGetDoc.cpp:536: cdrDoc += cdr::String(L"") + title + L""; Fixed as part of line 523 & CdrGetDoc.cpp:538: cdrDoc += cdr::String(L"") + comment + L""; Fixed as part of line 524 - CdrGetDoc.cpp:540: return L"" + cdrDoc - CdrGetDoc.cpp:542: + L"\n"; - CdrGetDoc.cpp:596: cdrDoc += L"" + date + L"" - CdrGetDoc.cpp:597: + user + L""; - CdrGetDoc.cpp:624: cdrDoc += L"" + date + L"" - CdrGetDoc.cpp:625: + user + L""; - CdrGetDoc.cpp:634: cdrDoc += L"" + date + L""; - CdrGetDoc.cpp:719: cdr::String lock = "N"; // Default value of element - CdrGetDoc.cpp:721: cdr::String version = L"0"; // Default value of element - CdrGetDoc.cpp:730: static_cast(commandNode); - CdrGetDoc.cpp:873: cdr::String docStr = L"\n" + readOnlyWrap (idStr, L"DocId"); & CdrGetDoc.cpp:924: return (docStr + L"\n"); + CdrGetGrp.cpp:60: cdr::String response = cdr::String(L" \n" + CdrGetGrp.cpp:61: L" ") CdrGetGrp.cpp:63: + L"\n"; CdrGetGrp.cpp:80: response += L" " + action + L""; CdrGetGrp.cpp:82: response += L"" + docType + L""; CdrGetGrp.cpp:83: response += L"\n"; CdrGetGrp.cpp:98: response += L" " + usrRs.getString(1) + L"\n"; CdrGetGrp.cpp:102: response += L" " + comment + L"\n"; CdrGetGrp.cpp:106: return response + L" \n"; CdrGetTree.cpp:51: resp << L"\n"; CdrGetTree.cpp:61: resp << L"\n"; CdrGetTree.cpp:65: resp << L"" << child << L"" CdrGetTree.cpp:66: << L"" << parent << L"\n"; CdrGetTree.cpp:68: resp << L"\n"; CdrGetTree.cpp:71: resp << L"\n"; CdrGetTree.cpp:78: resp << L"" << id << L"" CdrGetTree.cpp:79: << L"" << title << L"\n"; CdrGetTree.cpp:81: resp << L"\n"; CdrGetTree.cpp:84: resp << L"\n"; CdrGetUsr.cpp:87: cdr::String response = cdr::String(L" \n" CdrGetUsr.cpp:88: L" ") CdrGetUsr.cpp:90: + L"\n" CdrGetUsr.cpp:91: + L" " CdrGetUsr.cpp:93: + L"\n"; CdrGetUsr.cpp:95: response += L" " CdrGetUsr.cpp:97: + L"\n"; CdrGetUsr.cpp:99: response += L" " CdrGetUsr.cpp:101: + L"\n"; CdrGetUsr.cpp:103: response += L" " CdrGetUsr.cpp:105: + L"\n"; CdrGetUsr.cpp:107: response += L" " CdrGetUsr.cpp:109: + L"\n"; CdrGetUsr.cpp:121: response += L" " + grpRs.getString(1) + L"\n"; CdrGetUsr.cpp:125: response += L" " + comment + L"\n"; CdrGetUsr.cpp:128: return response + L" \n"; + CdrGlossaryMap.cpp:59: response << L""; &? CdrGlossaryMap.cpp:83: response << L""; This one looks like an old bug. term->first contains data extracted from the database. The data is passed through normalizePhrase(), which removes '<', '>' chars, but does not remove '&'. Have I missed something? I changed it to use entConvert(), which should do no harm even if there is no problem data. + CdrGlossaryMap.cpp:84: response << L"" << cdr::entConvert(name) << L""; + CdrGlossaryMap.cpp:87: response << L"" << cdr::entConvert(*phrase) + CdrGlossaryMap.cpp:88: << L""; + CdrGlossaryMap.cpp:91: response << L""; + CdrGlossaryMap.cpp:96: response << L""; + CdrGlossaryMap.cpp:118: response << L""; & CdrGlossaryMap.cpp:142: response << L""; Identical issue as for line 83. + CdrGlossaryMap.cpp:143: response << L"" << cdr::entConvert(name) << L""; + CdrGlossaryMap.cpp:146: response << L"" << cdr::entConvert(*phrase) + CdrGlossaryMap.cpp:147: << L""; + CdrGlossaryMap.cpp:150: response << L""; + CdrGlossaryMap.cpp:155: response << L""; - CdrGlossaryMap.cpp:190: " AND s.value <> 'Rejected' " - CdrGlossaryMap.cpp:191: " AND (e.value IS NULL OR e.value <> 'Yes') "; + CdrGlossaryMap.cpp:261: if (wcschr(L"'\".,?!:;()[]{}<>\x201C\x201D\x00A1\x00BF", p[i])) This is the place referred to in lines 83 and 142. No '&' in the normalization, so entConvert would still seem to be required. - CdrLink.cpp:283: = static_cast (fldNode); - CdrLink.cpp:661: cdr::String resp = L"\n" - CdrLink.cpp:662: L" " + docIdStr + L"\n" - CdrLink.cpp:663: L" \n" - CdrLink.cpp:664: L" "; - CdrLink.cpp:665: resp += errCount + L"\n"; - CdrLink.cpp:675: resp += L" \n" - CdrLink.cpp:676: L"\n"; + CdrLink.cpp:696: xml = L""; + CdrLink.cpp:759: xml += L""; - CdrLink.cpp:886: std::wcout << "DocId=" << docObj->getId() - CdrLink.cpp:887: << " DocTypeStr=" << docObj->getTextDocType() - CdrLink.cpp:1180: return (L"<" + cmdName + L"Resp/>"); - CdrLink.cpp:1231: cdr::String resp = "\n"; - CdrLink.cpp:1232: resp += L" " + linkName + L"\n"; - CdrLink.cpp:1233: resp += L" " + linkName + L"\n"; & CdrLink.cpp:1235: resp += L" " + comment + L"\n"; Comment from database was not encoded. + CdrLink.cpp:1249: resp += L" \n"; + CdrLink.cpp:1252: resp += L" \n"; + CdrLink.cpp:1266: resp += L" " + xrs.getString(1) + L"\n"; & CdrLink.cpp:1278: resp += L" \n"; Fixed two failures to convert property and property comment in this section. & CdrLink.cpp:1287: resp += L" \n"; Fixed two failures to convert property and property comment in this section. + CdrLink.cpp:1291: resp += L""; + CdrLink.cpp:1312: cdr::String resp = L"\n"; + CdrLink.cpp:1319: resp += L""; + CdrLink.cpp:1339: cdr::String resp = L"\n"; + CdrLink.cpp:1344: resp += L" /n"; & CdrLink.cpp:1350: resp += L" /n"; See fix on line 1349 + CdrLink.cpp:1350: resp += L" /n"; + CdrLink.cpp:1354: resp += L""; - CdrLink.cpp:1612: = static_cast (node); - CdrLink.cpp:2213: cdr::String response = L""; - CdrLink.cpp:2220: response += L""; - CdrLink.cpp:2222: swprintf(tmp, L"CDR%010ld" + CdrLink.cpp:2223: L"%.500s" + CdrLink.cpp:2224: L"", + CdrLink.cpp:2229: response += L""; + CdrLink.cpp:2231: response += L""; + CdrLink.cpp:2331: String rsp = L"" & CdrLink.cpp:2333: + L""; Fixed return of a title. - CdrLinkProcs.cpp:859: static_cast (this); - CdrLinkProcs.cpp:901: static_cast (this); - CdrLinkProcs.cpp:978: cdr::String response = L""; - CdrLinkProcs.cpp:985: response += L""; - CdrLinkProcs.cpp:987: swprintf(tmp, L"CDR%010ld" + CdrLinkProcs.cpp:988: L"%.500s" + CdrLinkProcs.cpp:989: L"", + CdrLinkProcs.cpp:994: response += L""; + CdrLinkProcs.cpp:996: response += L""; CdrListGrps.cpp:34: response = L" \n"; CdrListGrps.cpp:35: response += L" " + r.getString(1) + L"\n"; CdrListGrps.cpp:38: return L" \n"; CdrListGrps.cpp:40: return response + L" \n"; CdrListUsrs.cpp:46: response = L" \n"; CdrListUsrs.cpp:47: response += L" " + r.getString(1) + L"\n"; CdrListUsrs.cpp:50: return L" \n"; CdrListUsrs.cpp:52: return response + L" \n"; CdrLog.cpp:504: os << L"" << eventId CdrLog.cpp:505: << L""; CdrLogoff.cpp:46: return L" \n"; CdrLogon.cpp:108: cdr::String response = L" \n "; CdrLogon.cpp:109: response += sessionId + L"\n \n"; CdrLogon.cpp:135: cdr::String response = L" \n"; CdrLogon.cpp:136: response += L" " + oldSessionName + L"\n"; CdrLogon.cpp:137: response += L" " + newSessionName + L"\n"; CdrLogon.cpp:138: response += L" \n"; + CdrMergeProt.cpp:196: os << L"<" << ppdName << L">"; - CdrMergeProt.cpp:198: os << L""; + CdrMergeProt.cpp:202: os << L""; Safe because the content are controlled strings we defined (for some values of "safe") + CdrMergeProt.cpp:205: os << L""; + CdrMergeProt.cpp:210: os << L"" << encoded.c_str() + CdrMergeProt.cpp:211: << L""; + CdrMergeProt.cpp:214: os << L""; + CdrMergeProt.cpp:216: os << L""; Controlled names again ? CdrMergeProt.cpp:357: os << L">"; See attrValue on line 354. Should it be converted? Probably never needed but in theory could be. Have I misinterpreted what's going on and broken something?? ? CdrMergeProt.cpp:463: os << L""; Line 464 looks unsafe to me, but surely the CdrServer would have blown up if it is. Maybe I'm too tired right now. + CdrMergeProt.cpp:469: return L""; + CdrMergeProt.cpp:587: cdr::String cmd = L"" + CdrMergeProt.cpp:589: + L"NMerged with " + CdrMergeProt.cpp:591: + L"."; + CdrMergeProt.cpp:602: size_t pos = rsp.find(L""); - CdrMergeProt.cpp:628: cdr::String cmd = L"" - CdrMergeProt.cpp:630: + L"YCurrent" - CdrMergeProt.cpp:631: L""; - CdrMergeProt.cpp:642: if (rsp.find(L"") == rsp.npos) - CdrMergeProt.cpp:678: + L"'>"; - CdrMergeProt.cpp:683: cdr::String cmd = L"YN" - CdrMergeProt.cpp:684: L"Absorbed ScientificProtocolInfo document " + CdrMergeProt.cpp:686: + L".N" ? CdrMergeProt.cpp:688: + L""; Looks to me like the safety of this depends on the nature of scientific protocol info. Same issue as on 463 above. CdrModGrp.cpp:22:typedef std::list AuthList; CdrModGrp.cpp:166: return L" \n"; CdrModUsr.cpp:144: return L" \n"; CdrPublish.cpp:167: static_cast(doc); CdrPublish.cpp:324: return L"" + String::toString(jobId) + CdrPublish.cpp:325: L""; - CdrReport.cpp:50:map cdr::Report::reportMap; - CdrReport.cpp:135: return L"" - CdrReport.cpp:137: + L""; - CdrReport.cpp:463: result << L"" << getName() << L"\n"; - CdrReport.cpp:473: result << L"\n" - CdrReport.cpp:474: L"" << cdr::stringDocId(id) << L"\n" - CdrReport.cpp:475: L"" << dtype << L"\n" - CdrReport.cpp:476: L"" << name << L"\n" - CdrReport.cpp:477: L"" << dt_out << L"\n" - CdrReport.cpp:478: L"\n" - CdrReport.cpp:479: L"" << aname << L"\n" - CdrReport.cpp:480: L"" << dt << L"\n" - CdrReport.cpp:481: L"\n" - CdrReport.cpp:482: L"\n"; - CdrReport.cpp:485: result << L"]]>\n"; - CdrReport.cpp:515: result << L"" << getName() << L"\n"; - CdrReport.cpp:522: result << L"\n" - CdrReport.cpp:523: L"" << cdr::stringDocId(id) << L"\n" - CdrReport.cpp:524: L"" << dtype << L"\n" - CdrReport.cpp:525: L"" << dt_out << L"\n" - CdrReport.cpp:526: L"\n"; - CdrReport.cpp:529: result << L"]]>\n"; - CdrReport.cpp:569: result << L"" << getName() << L"\n"; - CdrReport.cpp:591: result << L"\n" - CdrReport.cpp:592: L"" << cdr::stringDocId(currentId) << L"\n" + CdrReport.cpp:593: L"" << currentTitle << L"\n" Fixed by Bob & CdrReport.cpp:594: L"" << group << L"\n" Fix is probably never required but not absolutely certain. And it doesn't hurt. - CdrReport.cpp:595: L"\n"; - CdrReport.cpp:618: result << L"\n" - CdrReport.cpp:619: L"" << cdr::stringDocId(currentId) << L"\n" + CdrReport.cpp:620: L"" << currentTitle << L"\n" Fixed by Bob & CdrReport.cpp:621: L"" << group << L"\n" Fix is probably never required but not absolutely certain. And it doesn't hurt. - CdrReport.cpp:622: L"\n"; - CdrReport.cpp:624: result << L"]]>\n"; - CdrReport.cpp:661: result << L"" << getName() << L"\n"; - CdrReport.cpp:667: result << L"\n" - CdrReport.cpp:668: L"" << cdr::stringDocId(id) << L"\n" + CdrReport.cpp:669: L"" << title << L"\n" Fixed by Bob - CdrReport.cpp:670: L"\n"; - CdrReport.cpp:673: result << L"]]>\n"; - CdrReport.cpp:702: size_t endTag = report.find(L"", startTag); - CdrReport.cpp:706: cdr::String result = L""; - CdrReport.cpp:741: size_t endTag = report.find(L"", tagClose); - CdrReport.cpp:746: cdr::String result = L""; - CdrReport.cpp:768: result << L"" << getName() << L"\n"; - CdrReport.cpp:783: groupElem = L"Main"; - CdrReport.cpp:785: groupElem = L"Affiliate"; - CdrReport.cpp:787: result << L""; - CdrReport.cpp:788: result << L"" - CdrReport.cpp:790: << L"" + CdrReport.cpp:792: << L"" + CdrReport.cpp:801: << L"'>" + CdrReport.cpp:803: << L""; Left piName alone on the theory that no human will have a name with &<> in it. - CdrReport.cpp:807: result << L""; - CdrReport.cpp:809: result << L"]]>\n"; - CdrReport.cpp:841: result << L"" << getName() << L"\n"; - CdrReport.cpp:862: result << L"" + CdrReport.cpp:864: << L"" + CdrReport.cpp:866: << L"" - CdrReport.cpp:868: << L""; - CdrReport.cpp:871: result << L"]]>\n"; - CdrReport.cpp:927: result << L"" << getName() << L"\n"; - CdrReport.cpp:938: result << L"" + CdrReport.cpp:940: << L"" + CdrReport.cpp:942: << L"" + CdrReport.cpp:944: << L"" + CdrReport.cpp:946: << L""; + CdrReport.cpp:948: result << L"" + CdrReport.cpp:950: << L""; - CdrReport.cpp:952: result << L"" - CdrReport.cpp:954: << L""; + CdrReport.cpp:955: result << L"" + CdrReport.cpp:957: << L""; + CdrReport.cpp:958: result << L"\n"; - CdrReport.cpp:960: result << L"]]>\n"; - CdrReport.cpp:993: result << L"" << getName() << L"\n"; - CdrReport.cpp:1010: result << L"]]>\n"; - CdrReport.cpp:1050: result << L"" << getName() << L"\n"; + CdrReport.cpp:1057: result << L"" + CdrReport.cpp:1058: << cdr::entConvert(value) << L"\n"; + CdrReport.cpp:1060: result << L"\n"; - CdrReport.cpp:1065: result << L"]]>\n"; - CdrReport.cpp:1097: " WHERE t.name <> 'Citation' "; - CdrReport.cpp:1116: result << L"" << getName() << L"\n"; - CdrReport.cpp:1140: result << L"" + CdrReport.cpp:1142: << L"" + CdrReport.cpp:1144: << L"" - CdrReport.cpp:1146: << L""; - CdrReport.cpp:1150: result << L"]]>\n"; - CdrReport.cpp:1196: result << L"" << getName() << L"\n"; - CdrReport.cpp:1202: result << L"" - CdrReport.cpp:1204: << L"\n]]>\n"; - CdrReport.cpp:1228: result << L"" << getName() << L"\n"; - CdrReport.cpp:1233: result << L"" - CdrReport.cpp:1235: << L"\n]]>\n"; - CdrReport.cpp:1260: result << L"" << getName() << L"\n"; - CdrReport.cpp:1265: result << L"" - CdrReport.cpp:1267: << L"\n]]>\n"; - CdrReport.cpp:1295: result << L"" << getName() << L"\n"; - CdrReport.cpp:1302: << L"'>" + CdrReport.cpp:1304: << L"\n"; + CdrReport.cpp:1306: result << L"]]>\n"; - CdrReport.cpp:1340: result << L"" << getName() << L"\n"; - CdrReport.cpp:1345: result << L"" + CdrReport.cpp:1347: << L"" - CdrReport.cpp:1349: << L"\n"; - CdrReport.cpp:1351: result << L"]]>\n"; - CdrSearch.cpp:77: static_cast(child); - CdrSearch.cpp:90: CdrSearchparse(static_cast(&qp)); - CdrSearch.cpp:117: cdr::String response = L" \n"; - CdrSearch.cpp:122: response += L" \n"; - CdrSearch.cpp:127: swprintf(tmp, L" \n CDR%010ld\n" - CdrSearch.cpp:128: L" %s\n" & CdrSearch.cpp:129: L" %.500s\n" Changed above and below for new convention, entConvert on output only. + CdrSearch.cpp:130: L" \n", + CdrSearch.cpp:135: response += L" \n \n"; + CdrSearch.cpp:137: response += L" \n \n"; - CdrSearch.cpp:195: str[j++] = static_cast(sql[i++]); - CdrSearch.cpp:398: static_cast(node); - CdrSearch.cpp:461: response = L""; + CdrSearch.cpp:462: response += L"" + r.getString(1) + L""; + CdrSearch.cpp:467: response = L""; + CdrSearch.cpp:469: response += L""; + CdrSearch.cpp:506: response = L""; + CdrSearch.cpp:507: response += L"" + path + L""; + CdrSearch.cpp:509: response += L"" + rule + L""; + CdrSearch.cpp:510: response += L""; + CdrSearch.cpp:515: response = L""; + CdrSearch.cpp:517: response += L""; + CdrSearch.cpp:612: return L""; - CdrSearch.cpp:692: return L""; - CdrServer.cpp:316: std::cout << "client IP address: " << threadArgs->clientAddress CdrServer.cpp:608: sprintf(blobTag, "", blobLen); CdrServer.cpp:653: cdr::String response = L"\n"; CdrServer.cpp:677: response += L"\n"; CdrServer.cpp:709: + L"'>\n \n " CdrServer.cpp:711: + L"\n \n\n"; CdrServer.cpp:725: const cdr::dom::Element& cmdElement = static_cast CdrServer.cpp:753: + L"'>\n \n " CdrServer.cpp:754: + L"Unknown command: " CdrServer.cpp:756: + L"\n \n" CdrServer.cpp:757: + L" \n"); CdrServer.cpp:773: + L" \n " CdrServer.cpp:775: + L"\n \n" CdrServer.cpp:778: + L"Resp>\n \n"); CdrServer.cpp:797: + L" \n " CdrServer.cpp:799: + L"\n \n" CdrServer.cpp:802: + L"Resp>\n \n"); CdrServer.cpp:815: + L"Resp>" CdrServer.cpp:818: + L""); CdrServer.cpp:836: + L"Resp>" CdrServer.cpp:837: + L"SAX Parse Exception: " CdrServer.cpp:840: + L""); CdrServer.cpp:852: + L"Resp>SAX Exception: " CdrServer.cpp:854: + L""); CdrServer.cpp:866: + L"Resp>Unexpected " CdrServer.cpp:868: L""); CdrServer.cpp:878: + L" \n"; CdrServer.cpp:891: + L"'>\n \n " CdrServer.cpp:892: + L"Missing specific command element" CdrServer.cpp:893: + L"\n \n" CdrServer.cpp:894: + L" \n"); CdrServer.cpp:920: " AND name <> 'guest'" CdrSession.cpp:595: return cdr::String(L" " + result + L""); CdrShutdown.cpp:20: return L" \n"; + CdrString.cpp:352: elem += L">" + data + L""; + CdrString.cpp:363: cdr::String s = L" \n"; +? CdrString.cpp:366: s += L" " + *i++ + L"\n"; This one works for the vast majority of errors. Error messages including text from the doc, like titles, could fail with this - unless the conversion is already made - which it might be in at least one case. So this could be wrong but isn't safe to modify without a huge amount of analysis. + CdrString.cpp:367: s += L" \n"; + CdrString.cpp:437: else if (c < 0 || c >= (int)getDecodingTableSize()) { + CdrString.cpp:555: p[1] = codes[(bits[i + 0] << 4 | bits[i + 1] >> 4) & 0x3F]; + CdrString.cpp:561: p[1] = codes[(bits[i + 0] << 4 | bits[i + 1] >> 4) & 0x3F]; + CdrString.cpp:562: p[2] = codes[(bits[i + 1] << 2 | bits[i + 2] >> 6) & 0x3F]; CdrSysValue.cpp:245: cdr::String resp = L"<" + tag + L">"; CdrSysValue.cpp:247: resp += L"\n " + retValue + L"\n"; CdrSysValue.cpp:248: resp += L"\n"; CdrTestClient.cpp:76: requests = "guest"; CdrTestClient.cpp:77: requests += "CDR0000043753"; CdrTestClient.cpp:78: requests += ""; CdrTestClient.cpp:165: std::cout << "\n" << response << '\n'; CdrValidateDoc.cpp:116: errStr += L">" + errMsg + L"\n"; CdrValidateDoc.cpp:252: xml += L"" + *i++ + L"\n"; CdrValidateDoc.cpp:275: xml = L"\n" + xml + L"\n"; CdrValidateDoc.cpp:315: static_cast(commandNode); CdrValidateDoc.cpp:618: L" " CdrValidateDoc.cpp:620: + L"\n " CdrValidateDoc.cpp:622: + L"\n" CdrValidateDoc.cpp:625: + L" \n"; CdrVersion.cpp:795: static_cast(c.getNodeType()); CdrVersion.cpp:807: ver_string << L"" << version << L""; CdrVersion.cpp:809: return L"" + ver_string.str() + L""; CdrVersion.cpp:820: auto_ptr comment; CdrVersion.cpp:858: comment = auto_ptr(new cdr::String(false)); CdrVersion.cpp:862: static_cast(c.getNodeType()); CdrVersion.cpp:865: comment = auto_ptr(new cdr::String(c.getNodeValue())); CdrVersion.cpp:875: ver_string << L"" << version << L""; CdrVersion.cpp:877: ver_string << L""; CdrVersion.cpp:879: return L"" + ver_string.str() + L""; CdrVersion.cpp:907: static_cast(c.getNodeType()); CdrVersion.cpp:931: return L""; CdrVersion.cpp:994: return L""; CdrVersion.cpp:1063: return L""; CdrVersion.cpp:1114: return L""; CdrVersion.cpp:1164: response << L""; CdrVersion.cpp:1170: response << L"" CdrVersion.cpp:1172: << L"" CdrVersion.cpp:1174: << L""; CdrVersion.cpp:1176: response << L"" CdrVersion.cpp:1178: << L""; CdrVersion.cpp:1179: response << L""; CdrVersion.cpp:1182: response << L""; CdrVersion.cpp:1218: response << L"\n"; CdrVersion.cpp:1232: response << L" " CdrVersion.cpp:1234: << L"\n"; CdrVersion.cpp:1249: response << L" " CdrVersion.cpp:1251: << L"\n"; CdrVersion.cpp:1255: response << L" " CdrVersion.cpp:1257: << L"\n"; CdrVersion.cpp:1260: response << L"\n"; CdrXsd.cpp:506: L" \n" CdrXsd.cpp:507: L" \n" CdrXsd.cpp:508: L" \n" CdrXsd.cpp:509: L" \n" CdrXsd.cpp:510: L" \n\n" CdrXsd.cpp:511: L" \n" CdrXsd.cpp:512: L" \n" CdrXsd.cpp:513: L" \n\n"; CdrXsd.cpp:518: << L"'>\n"; CdrXsd.cpp:525: << L")'>\n" CdrXsd.cpp:526: L" \n" CdrXsd.cpp:529: << L"\"'/>\n" CdrXsd.cpp:530: L" \n" CdrXsd.cpp:531: L" \n"; CdrXsd.cpp:533: os << L" \n" CdrXsd.cpp:534: L" \n\n"; CdrXsd.cpp:536: os << L" \n" CdrXsd.cpp:537: L" \n" CdrXsd.cpp:538: L" \n" CdrXsd.cpp:539: L" \n" CdrXsd.cpp:540: L" \n" CdrXsd.cpp:541: L" \n" CdrXsd.cpp:542: L" \n" CdrXsd.cpp:543: L" \n" CdrXsd.cpp:544: L" \n" CdrXsd.cpp:545: L" \n" CdrXsd.cpp:546: L" \n" CdrXsd.cpp:547: L" \n" CdrXsd.cpp:548: L" \n" CdrXsd.cpp:549: L" \n\n" CdrXsd.cpp:550: L" \n" CdrXsd.cpp:551: L" \n" CdrXsd.cpp:552: L" \n" CdrXsd.cpp:557: L" \n" CdrXsd.cpp:558: L" \n" CdrXsd.cpp:561: L" \n" CdrXsd.cpp:567: L" \n" CdrXsd.cpp:568: L" \n" CdrXsd.cpp:569: L" \n" CdrXsd.cpp:570: L" \n" CdrXsd.cpp:574: L" \n" CdrXsd.cpp:575: L" \n" CdrXsd.cpp:576: L" \n\n" CdrXsd.cpp:577: L"\n"; CdrXsd.cpp:627: const cdr::dom::Element& e = static_cast(n); CdrXsd.cpp:904: const cdr::dom::Element& e = static_cast(dn); CdrXsd.cpp:937: const cdr::dom::Element& e = static_cast(dn); CdrXsd.cpp:1050: const cdr::dom::Element& e = static_cast(dn); CdrXsd.cpp:1077: const cdr::dom::Element& e = static_cast(dn); CdrXsd.cpp:1563: (static_cast(n)).getAttribute( CdrXsd.cpp:2450: errCtl.setElementContext(static_cast(child)); CdrXsd.cpp:2553: << (docOccs > 0 ? L"true" : L"false") CdrXsd.cpp:7070: << L"\n\n -->\n\n"; CdrXsd.cpp:7098: os << L"(#PCDATA)>\n"; CdrXsd.cpp:7114: os << L"EMPTY>\n"; CdrXsd.cpp:7119: os << L"(#PCDATA)>\n"; CdrXsd.cpp:7145: os << L")*>\n"; CdrXsd.cpp:7181: os << L">\n"; CdrXsd.cpp:7208: os << L" " << a->getName() << L" "; CdrXsd.cpp:7228: os << a->getDtdType(); CdrXsd.cpp:7240: os << L">\n"; CdrXsd.cpp:7246: os << L"\n"; CdrXsd.cpp:7247: os << L"\n"; CdrXsd.cpp:7248: os << L"\n"; CdrXsd.cpp:7249: os << L"\n"; CdrXsd.cpp:7250: os << L"\n"; CdrXsd.cpp:7251: os << L"\n"; CdrXsd.cpp:7335: os << g->getContent(); CdrXsd.cpp:7447: writeDtdElement(const_cast(*e), os); CdrXsd.cpp:7659: checkElementForAttribute(const_cast(*e), attrName, elemList, Connect.cpp:45: rc = SQLConnect(hdbc, const_cast(dsn), SQL_NTS, Connect.cpp:46: const_cast(uid), SQL_NTS, Connect.cpp:47: const_cast(pwd), SQL_NTS); FixDates.cpp:17:const wchar_t* TAG = L""; ParseSchema.cpp:56: std::wcerr << L"DOM Exception: " << de->code << cdr::String(L": ") ParseSchema.cpp:57: << cdr::String(de->msg) ShutdownCdr.cpp:85: std::string cmd = ""; ShutdownCdr.cpp:87: + "" ShutdownCdr.cpp:89: + "" ShutdownCdr.cpp:90: "" ShutdownCdr.cpp:91: ""; xmlpp.cpp:671: if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) xmlpp.cpp:975: if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) xmlpp.cpp:991: if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) xmlpp.cpp:1024: if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )