亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? nsseamonkeyprofilemigrator.cpp

?? 現(xiàn)在很火的郵件客戶端軟件thunderbird的源碼
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
      prefName.Cut( prefName.Length() - strlen("directory"), strlen("directory"));      prefName.Insert("mail.server.", 0);      nsCOMPtr<nsIPrefBranch> serverBranch;      aPrefService->GetBranch(prefName.get(), getter_AddRefs(serverBranch));      if (!serverBranch)        break; // should we clear out this server pref from aMailServers?      nsXPIDLCString serverType;       serverBranch->GetCharPref("type", getter_Copies(serverType));      nsCOMPtr<nsILocalFile> sourceMailFolder;      serverBranch->GetComplexValue("directory", NS_GET_IID(nsILocalFile), getter_AddRefs(sourceMailFolder));      // now based on type, we need to build a new destination path for the mail folders for this server      nsCOMPtr<nsIFile> targetMailFolder;      if (serverType.Equals("imap"))      {        mTargetProfile->Clone(getter_AddRefs(targetMailFolder));        targetMailFolder->Append(IMAP_MAIL_DIR_50_NAME);             }      else if (serverType.Equals("none") || serverType.Equals("pop3"))       {        // local folders and POP3 servers go under <profile>\Mail        mTargetProfile->Clone(getter_AddRefs(targetMailFolder));        targetMailFolder->Append(MAIL_DIR_50_NAME);      }      else if (serverType.Equals("nntp"))      {        mTargetProfile->Clone(getter_AddRefs(targetMailFolder));        targetMailFolder->Append(NEWS_DIR_50_NAME);                 nsCAutoString alteredHost;        alteredHost = "host-";        nsXPIDLCString hostName;         serverBranch->GetCharPref("hostname", getter_Copies(hostName));         alteredHost += hostName;        NS_MsgHashIfNecessary(alteredHost);         targetMailFolder->Append(NS_ConvertASCIItoUCS2(alteredHost));       }      if (targetMailFolder)      {        // for all of our server types, append the host name to the directory as part of the new location        if (!serverType.Equals("nntp"))        {          nsXPIDLCString hostName;           serverBranch->GetCharPref("hostname", getter_Copies(hostName));          targetMailFolder->Append(NS_ConvertASCIItoUCS2(hostName));            // we should make sure the host name based directory we are going to migrate           // the accounts into is unique. This protects against the case where the user          // has multiple servers with the same host name.          targetMailFolder->CreateUnique(nsIFile::DIRECTORY_TYPE, 0777);        }        rv = RecursiveCopy(sourceMailFolder, targetMailFolder);        // now we want to make sure the actual directory pref that gets transformed        // into the new profile's pref.js has the right file location.         nsCAutoString descriptorString;        nsCOMPtr<nsILocalFile> localFile = do_QueryInterface(targetMailFolder);        localFile->GetPersistentDescriptor(descriptorString);        nsCRT::free(pref->stringValue);        pref->stringValue = ToNewCString(descriptorString);      }    }    else if (StringEndsWith(prefName, nsDependentCString(".newsrc.file")))    {      // copy the news RC file into \News. this won't work if the user has different newsrc files for each account      // I don't know what to do in that situation.            nsCOMPtr<nsIFile> targetNewsRCFile;      mTargetProfile->Clone(getter_AddRefs(targetNewsRCFile));      targetNewsRCFile->Append(NEWS_DIR_50_NAME);       // turn the pref into a nsILocalFile      nsCOMPtr<nsILocalFile> srcNewsRCFile = do_CreateInstance(NS_LOCAL_FILE_CONTRACTID);      srcNewsRCFile->SetPersistentDescriptor(nsDependentCString(pref->stringValue));      // now make the copy      PRBool exists;       srcNewsRCFile->Exists(&exists);      if (exists)      {        nsAutoString leafName;        srcNewsRCFile->GetLeafName(leafName);        srcNewsRCFile->CopyTo(targetNewsRCFile,leafName); // will fail if we've already copied a newsrc file here        targetNewsRCFile->Append(leafName);        // now write out the new descriptor        nsCAutoString descriptorString;        nsCOMPtr<nsILocalFile> localFile = do_QueryInterface(targetNewsRCFile);        localFile->GetPersistentDescriptor(descriptorString);        nsCRT::free(pref->stringValue);        pref->stringValue = ToNewCString(descriptorString);      }          }  }  return NS_OK;}nsresultnsSeamonkeyProfileMigrator::CopyPreferences(PRBool aReplace){  nsresult rv = NS_OK;  if (!aReplace)    return rv;  rv |= TransformPreferences(FILE_NAME_PREFS, FILE_NAME_PREFS);   rv |= CopyFile(FILE_NAME_USER_PREFS, FILE_NAME_USER_PREFS);  // Security Stuff  rv |= CopyFile(FILE_NAME_CERT8DB, FILE_NAME_CERT8DB);  rv |= CopyFile(FILE_NAME_KEY3DB, FILE_NAME_KEY3DB);  rv |= CopyFile(FILE_NAME_SECMODDB, FILE_NAME_SECMODDB);  // User MIME Type overrides  rv |= CopyFile(FILE_NAME_MIMETYPES, FILE_NAME_MIMETYPES);  rv |= CopyFile(FILE_NAME_PERSONALDICTIONARY, FILE_NAME_PERSONALDICTIONARY);  rv |= CopyFile(FILE_NAME_MAILVIEWS, FILE_NAME_MAILVIEWS);  return rv;}void nsSeamonkeyProfileMigrator::ReadBranch(const char * branchName, nsIPrefService* aPrefService,                                             nsVoidArray* aPrefs){  // Enumerate the branch  nsCOMPtr<nsIPrefBranch> branch;  aPrefService->GetBranch(branchName, getter_AddRefs(branch));  PRUint32 count;  char** prefs = nsnull;  nsresult rv = branch->GetChildList("", &count, &prefs);  if (NS_FAILED(rv)) return;  for (PRUint32 i = 0; i < count; ++i) {    // Save each pref's value into an array    char* currPref = prefs[i];    PRInt32 type;    branch->GetPrefType(currPref, &type);    PrefBranchStruct* pref = new PrefBranchStruct;    pref->prefName = currPref;    pref->type = type;    switch (type) {    case nsIPrefBranch::PREF_STRING:      rv = branch->GetCharPref(currPref, &pref->stringValue);      break;    case nsIPrefBranch::PREF_BOOL:      rv = branch->GetBoolPref(currPref, &pref->boolValue);      break;    case nsIPrefBranch::PREF_INT:      rv = branch->GetIntPref(currPref, &pref->intValue);      break;    case nsIPrefBranch::PREF_INVALID:      {        nsCOMPtr<nsIPrefLocalizedString> str;        rv = branch->GetComplexValue(currPref,                                     NS_GET_IID(nsIPrefLocalizedString),                                     getter_AddRefs(str));        if (NS_SUCCEEDED(rv) && str)          str->ToString(&pref->wstringValue);      }      break;    }    if (NS_SUCCEEDED(rv))      aPrefs->AppendElement((void*)pref);  }}voidnsSeamonkeyProfileMigrator::WriteBranch(const char * branchName, nsIPrefService* aPrefService,                                        nsVoidArray* aPrefs){  nsresult rv;  // Enumerate the branch  nsCOMPtr<nsIPrefBranch> branch;  aPrefService->GetBranch(branchName, getter_AddRefs(branch));  PRUint32 count = aPrefs->Count();  for (PRUint32 i = 0; i < count; ++i) {    PrefBranchStruct* pref = (PrefBranchStruct*)aPrefs->ElementAt(i);    switch (pref->type) {    case nsIPrefBranch::PREF_STRING:      rv = branch->SetCharPref(pref->prefName, pref->stringValue);      nsCRT::free(pref->stringValue);      pref->stringValue = nsnull;      break;    case nsIPrefBranch::PREF_BOOL:      rv = branch->SetBoolPref(pref->prefName, pref->boolValue);      break;    case nsIPrefBranch::PREF_INT:      rv = branch->SetIntPref(pref->prefName, pref->intValue);      break;    case nsIPrefBranch::PREF_INVALID:      nsCOMPtr<nsIPrefLocalizedString> pls(do_CreateInstance("@mozilla.org/pref-localizedstring;1"));      pls->SetData(pref->wstringValue);      rv = branch->SetComplexValue(pref->prefName,                                    NS_GET_IID(nsIPrefLocalizedString),                                   pls);      nsCRT::free(pref->wstringValue);      pref->wstringValue = nsnull;      break;    }    nsCRT::free(pref->prefName);    pref->prefName = nsnull;    delete pref;    pref = nsnull;  }  aPrefs->Clear();}nsresult nsSeamonkeyProfileMigrator::DummyCopyRoutine(PRBool aReplace){  // place holder function only to fake the UI out into showing some migration process.  return NS_OK;}nsresultnsSeamonkeyProfileMigrator::CopyJunkTraining(PRBool aReplace){  return aReplace ? CopyFile(FILE_NAME_JUNKTRAINING, FILE_NAME_JUNKTRAINING) : NS_OK;}nsresultnsSeamonkeyProfileMigrator::CopyPasswords(PRBool aReplace){  nsresult rv;  nsXPIDLCString signonsFileName;  GetSignonFileName(aReplace, getter_Copies(signonsFileName));  if (signonsFileName.IsEmpty())    return NS_ERROR_FILE_NOT_FOUND;  nsAutoString fileName; fileName.AssignWithConversion(signonsFileName);  if (aReplace)    rv = CopyFile(fileName, fileName);  else {    // don't do anything right now  }  return rv;}// helper functions for news migrationstatic PRUint32 StringHash(const char *ubuf){  unsigned char * buf = (unsigned char*) ubuf;  PRUint32 h=1;  while(*buf) {    h = 0x63c63cd9*h + 0x9c39c33d + (int32)*buf;    buf++;  }  return h;}nsresult NS_MsgHashIfNecessary(nsCString &name){#if defined(XP_MAC)  const PRUint32 MAX_LEN = 25;#elif defined(XP_UNIX) || defined(XP_BEOS)  const PRUint32 MAX_LEN = 55;#elif defined(XP_WIN32)  const PRUint32 MAX_LEN = 55;#elif defined(XP_OS2)  const PRUint32 MAX_LEN = 55;#else  #error need_to_define_your_max_filename_length#endif  nsCAutoString illegalChars(FILE_PATH_SEPARATOR FILE_ILLEGAL_CHARACTERS);  nsCAutoString str(name);  // Given a filename, make it safe for filesystem  // certain filenames require hashing because they   // are too long or contain illegal characters  PRInt32 illegalCharacterIndex = str.FindCharInSet(illegalChars);  char hashedname[MAX_LEN + 1];  if (illegalCharacterIndex == kNotFound)   {    // no illegal chars, it's just too long    // keep the initial part of the string, but hash to make it fit    if (str.Length() > MAX_LEN)     {      PL_strncpy(hashedname, str.get(), MAX_LEN + 1);      PR_snprintf(hashedname + MAX_LEN - 8, 9, "%08lx",                (unsigned long) StringHash(str.get()));      name = hashedname;    }  }  else   {      // found illegal chars, hash the whole thing      // if we do substitution, then hash, two strings      // could hash to the same value.      // for example, on mac:  "foo__bar", "foo:_bar", "foo::bar"      // would map to "foo_bar".  this way, all three will map to      // different values      PR_snprintf(hashedname, 9, "%08lx",                (unsigned long) StringHash(str.get()));      name = hashedname;  }    return NS_OK;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产视频一区在线观看| 欧洲精品在线观看| 久久久久久免费毛片精品| 亚洲成av人片在线观看| 69久久夜色精品国产69蝌蚪网| 亚洲一区二区三区在线看| 欧美日韩精品电影| 日韩高清国产一区在线| 日韩视频在线观看一区二区| 麻豆精品视频在线观看视频| 久久综合999| 99久久精品99国产精品| 亚洲精品美腿丝袜| 欧美一区日本一区韩国一区| 蜜桃久久精品一区二区| 国产农村妇女精品| 在线视频国产一区| 青青草91视频| 亚洲国产精品精华液ab| 在线观看亚洲精品视频| 久久精品久久久精品美女| 国产午夜精品久久久久久免费视 | 久久久精品综合| 福利电影一区二区三区| 亚洲欧美激情插| 日韩西西人体444www| 成人妖精视频yjsp地址| 五月天中文字幕一区二区| 久久久国产精品午夜一区ai换脸| 国产精品18久久久久| 亚洲伊人伊色伊影伊综合网| 精品国产伦理网| 91视视频在线观看入口直接观看www | 奇米色一区二区| 国产人久久人人人人爽| 欧美日韩国产欧美日美国产精品| 精品午夜久久福利影院| 亚洲精品乱码久久久久久久久 | 欧美aaaaaa午夜精品| 欧美国产激情一区二区三区蜜月| 在线中文字幕一区| 国产成人亚洲综合a∨猫咪| 偷拍一区二区三区四区| 中文字幕精品—区二区四季| 欧美卡1卡2卡| 色呦呦网站一区| 国产尤物一区二区在线| 午夜视频一区二区三区| 中文字幕一区二区在线观看| 日韩一二三四区| 欧美在线不卡视频| 丁香桃色午夜亚洲一区二区三区| 亚洲国产一二三| 国产精品久久久久久久蜜臀| 欧美成人aa大片| 欧美自拍丝袜亚洲| 成人av影院在线| 国产成人aaa| 极品少妇一区二区三区精品视频 | 国产成人免费av在线| 婷婷中文字幕一区三区| 亚洲欧美一区二区三区孕妇| 久久久蜜桃精品| 精品久久人人做人人爽| 欧美放荡的少妇| 欧美午夜精品理论片a级按摩| 成人美女视频在线看| 国产精品一品二品| 精品一区二区影视| 久久99久久久久| 日韩高清国产一区在线| 亚洲丶国产丶欧美一区二区三区| 亚洲免费三区一区二区| 日韩一区在线免费观看| 国产精品久久久久一区二区三区共| 欧美v国产在线一区二区三区| 欧美日韩和欧美的一区二区| 欧美午夜精品久久久久久超碰 | 亚洲自拍都市欧美小说| 亚洲婷婷综合色高清在线| 中文字幕一区不卡| 亚洲日本成人在线观看| 亚洲免费看黄网站| 一区二区三区精品视频在线| 一区二区三区波多野结衣在线观看| 亚洲美女视频一区| 亚洲综合色区另类av| 亚洲综合999| 天天色天天爱天天射综合| 日本午夜精品一区二区三区电影 | 精品国产欧美一区二区| 久久婷婷一区二区三区| 国产目拍亚洲精品99久久精品| 国产欧美一区视频| 国产精品国产a级| 一区二区在线看| 亚洲成人av电影| 日韩高清在线不卡| 国产一区二区在线观看视频| 国产xxx精品视频大全| 99视频在线精品| 欧美日韩综合在线免费观看| 欧美日韩免费电影| 日韩欧美国产1| 国产精品视频在线看| 成人欧美一区二区三区黑人麻豆| 亚洲男人的天堂在线观看| 亚洲一级在线观看| 九一久久久久久| 成人国产在线观看| 色国产综合视频| 日韩免费一区二区| 国产精品麻豆网站| 天使萌一区二区三区免费观看| 蜜桃视频免费观看一区| 成人午夜av电影| 欧美三级乱人伦电影| 欧美成人aa大片| 亚洲精品成人精品456| 日韩国产欧美三级| 国产乱人伦精品一区二区在线观看| 99精品国产视频| 精品日韩在线观看| 国产精品久久久久影院| 日本美女视频一区二区| 成人av网站在线观看免费| 欧美日韩国产一二三| 亚洲国产精品激情在线观看| 欧美日高清视频| 香蕉久久一区二区不卡无毒影院| 日本亚洲免费观看| 91伊人久久大香线蕉| 精品久久人人做人人爰| 亚洲精品成a人| 国产在线视频一区二区| 欧美网站一区二区| 中文字幕欧美激情| 奇米亚洲午夜久久精品| 色中色一区二区| 中文在线一区二区| 男女激情视频一区| 91毛片在线观看| 亚洲精品在线观看网站| 五月综合激情婷婷六月色窝| 97久久超碰国产精品| 久久精品亚洲乱码伦伦中文| 日本成人在线网站| 欧美偷拍一区二区| 亚洲欧美日韩成人高清在线一区| 国产乱码精品一区二区三区五月婷| 欧美日韩成人一区| 亚洲一区二区在线观看视频| 国产91在线观看| 精品国产髙清在线看国产毛片| 夜夜亚洲天天久久| 91社区在线播放| 亚洲桃色在线一区| 99视频有精品| 国产精品高清亚洲| eeuss国产一区二区三区| 国产午夜精品久久久久久久| 精品一区二区三区欧美| 日韩精品中午字幕| 日本伊人色综合网| 欧美日韩国产一区二区三区地区| 樱桃视频在线观看一区| 91女厕偷拍女厕偷拍高清| 国产精品电影一区二区三区| 成人涩涩免费视频| 中文字幕av一区二区三区免费看 | 夜夜嗨av一区二区三区 | 久久网站热最新地址| 捆绑调教一区二区三区| 日韩一级片在线观看| 日本亚洲一区二区| 日韩免费在线观看| 国产在线精品国自产拍免费| 国产无人区一区二区三区| 高清国产一区二区三区| 国产精品午夜电影| 色素色在线综合| 亚洲成人av电影在线| 日韩一级完整毛片| 国产一区二区在线观看免费 | 国产欧美日韩视频在线观看| 国产电影一区在线| 国产精品麻豆久久久| 99国产精品久| 亚洲尤物在线视频观看| 91精品国产91久久综合桃花| 久色婷婷小香蕉久久| 国产精品午夜久久| 欧美在线一区二区三区| 麻豆高清免费国产一区| 欧美激情一区二区三区不卡| 色欲综合视频天天天| 麻豆精品一区二区综合av| 国产精品久久看| 欧美色视频在线| 国产乱码一区二区三区|