std::string TransformSpecial (char c) { if (IsAscii (c)) { switch (c) { case 34: return Quot; case 38: return Amp; case 39: return Apos; case 60: return Lt; case 62: return Gt; default: Assert (!"Character is not special!"); return Quot; }; } else { std::string encodedUpperAscii ("&#x"); encodedUpperAscii += ToHexStr (c); encodedUpperAscii += ';'; return encodedUpperAscii; } }
int main(int argc, char **argv) { if (test_common_init(&argc, &argv) != 0) return -1; int sleepLen = 10; // default: 10 seconds if (argc == 1) { printf("usage: TestDNS [-N] hostname1 [hostname2 ...]\n"); return -1; } { nsCOMPtr<nsIServiceManager> servMan; NS_InitXPCOM2(getter_AddRefs(servMan), nullptr, nullptr); nsCOMPtr<nsPIDNSService> dns = do_GetService(NS_DNSSERVICE_CONTRACTID); if (!dns) return -1; if (argv[1][0] == '-') { sleepLen = atoi(argv[1]+1); argv++; argc--; } for (int j=0; j<2; ++j) { for (int i=1; i<argc; ++i) { // assume non-ASCII input is given in the native charset nsAutoCString hostBuf; if (IsAscii(argv[i])) hostBuf.Assign(argv[i]); else hostBuf = NS_ConvertUTF16toUTF8(NS_ConvertASCIItoUTF16(argv[i])); nsCOMPtr<nsIDNSListener> listener = new myDNSListener(argv[i], i); nsCOMPtr<nsICancelable> req; nsresult rv = dns->AsyncResolve(hostBuf, nsIDNSService::RESOLVE_CANONICAL_NAME, listener, nullptr, getter_AddRefs(req)); if (NS_FAILED(rv)) printf("### AsyncResolve failed [rv=%x]\n", static_cast<uint32_t>(rv)); } printf("main thread sleeping for %d seconds...\n", sleepLen); PR_Sleep(PR_SecondsToInterval(sleepLen)); } printf("shutting down main thread...\n"); dns->Shutdown(); } NS_ShutdownXPCOM(nullptr); return 0; }
static int exec(FILE* fp, ENC_INFO* einfo) { #define NCOL 8 int c, val, enc; enc = einfo->num; fprintf(fp, "static const unsigned short Enc%s_CtypeTable[256] = {\n", einfo->name); for (c = 0; c < 256; c++) { val = 0; if (IsNewline(enc, c)) val |= BIT_CTYPE_NEWLINE; if (IsAlpha (enc, c)) val |= (BIT_CTYPE_ALPHA | BIT_CTYPE_ALNUM); if (IsBlank (enc, c)) val |= BIT_CTYPE_BLANK; if (IsCntrl (enc, c)) val |= BIT_CTYPE_CNTRL; if (IsDigit (enc, c)) val |= (BIT_CTYPE_DIGIT | BIT_CTYPE_ALNUM); if (IsGraph (enc, c)) val |= BIT_CTYPE_GRAPH; if (IsLower (enc, c)) val |= BIT_CTYPE_LOWER; if (IsPrint (enc, c)) val |= BIT_CTYPE_PRINT; if (IsPunct (enc, c)) val |= BIT_CTYPE_PUNCT; if (IsSpace (enc, c)) val |= BIT_CTYPE_SPACE; if (IsUpper (enc, c)) val |= BIT_CTYPE_UPPER; if (IsXDigit(enc, c)) val |= BIT_CTYPE_XDIGIT; if (IsWord (enc, c)) val |= BIT_CTYPE_WORD; if (IsAscii (enc, c)) val |= BIT_CTYPE_ASCII; if (c % NCOL == 0) fputs(" ", fp); fprintf(fp, "0x%04x", val); if (c != 255) fputs(",", fp); if (c != 0 && c % NCOL == (NCOL-1)) fputs("\n", fp); else fputs(" ", fp); } fprintf(fp, "};\n"); return 0; }