| Index: app/win_util.cc
|
| ===================================================================
|
| --- app/win_util.cc (revision 26141)
|
| +++ app/win_util.cc (working copy)
|
| @@ -267,23 +267,33 @@
|
| size_t first_separator_index = first_extension.find(L';');
|
| if (first_separator_index != std::wstring::npos)
|
| first_extension = first_extension.substr(0, first_separator_index);
|
| +
|
| + // Find the extension name without the preceeding '.' character.
|
| + std::wstring ext_name = first_extension;
|
| + size_t ext_index = ext_name.find_first_not_of(L'.');
|
| + if (ext_index != std::wstring::npos)
|
| + ext_name = ext_name.substr(ext_index);
|
| +
|
| if (!GetRegistryDescriptionFromExtension(first_extension, &desc)) {
|
| - // The extension doesn't exist in the registry. It's likely bogus, so
|
| - // just drop it.
|
| + // The extension doesn't exist in the registry. Create a description
|
| + // based on the unknown extension type (i.e. if the extension is .qqq,
|
| + // the we create a description "QQQ File (.qqq)").
|
| include_all_files = true;
|
| - continue;
|
| + desc = l10n_util::GetStringF(IDS_APP_SAVEAS_EXTENSION_FORMAT,
|
| + l10n_util::ToUpper(ext_name),
|
| + ext_name);
|
| }
|
| if (desc.empty())
|
| - desc = L"*." + first_extension;
|
| + desc = L"*." + ext_name;
|
| }
|
|
|
| - result.append(desc.c_str(), desc.size()+1); // Append NULL too.
|
| - result.append(ext.c_str(), ext.size()+1);
|
| + result.append(desc.c_str(), desc.size() + 1); // Append NULL too.
|
| + result.append(ext.c_str(), ext.size() + 1);
|
| }
|
|
|
| if (include_all_files) {
|
| - result.append(all_desc.c_str(), all_desc.size()+1);
|
| - result.append(all_ext.c_str(), all_ext.size()+1);
|
| + result.append(all_desc.c_str(), all_desc.size() + 1);
|
| + result.append(all_ext.c_str(), all_ext.size() + 1);
|
| }
|
|
|
| result.append(1, '\0'); // Double NULL required.
|
|
|