Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(289)

Side by Side Diff: base/environment.cc

Issue 1878083002: Implement IsAsciiUpper and IsAsciiLower in base/strings/string_util.h (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: git sync Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/environment.h" 5 #include "base/environment.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <vector> 9 #include <vector>
10 10
(...skipping 17 matching lines...) Expand all
28 bool GetVar(const char* variable_name, std::string* result) override { 28 bool GetVar(const char* variable_name, std::string* result) override {
29 if (GetVarImpl(variable_name, result)) 29 if (GetVarImpl(variable_name, result))
30 return true; 30 return true;
31 31
32 // Some commonly used variable names are uppercase while others 32 // Some commonly used variable names are uppercase while others
33 // are lowercase, which is inconsistent. Let's try to be helpful 33 // are lowercase, which is inconsistent. Let's try to be helpful
34 // and look for a variable name with the reverse case. 34 // and look for a variable name with the reverse case.
35 // I.e. HTTP_PROXY may be http_proxy for some users/systems. 35 // I.e. HTTP_PROXY may be http_proxy for some users/systems.
36 char first_char = variable_name[0]; 36 char first_char = variable_name[0];
37 std::string alternate_case_var; 37 std::string alternate_case_var;
38 if (first_char >= 'a' && first_char <= 'z') 38 if (IsAsciiLower(first_char))
39 alternate_case_var = ToUpperASCII(variable_name); 39 alternate_case_var = ToUpperASCII(variable_name);
40 else if (first_char >= 'A' && first_char <= 'Z') 40 else if (IsAsciiUpper(first_char))
41 alternate_case_var = ToLowerASCII(variable_name); 41 alternate_case_var = ToLowerASCII(variable_name);
42 else 42 else
43 return false; 43 return false;
44 return GetVarImpl(alternate_case_var.c_str(), result); 44 return GetVarImpl(alternate_case_var.c_str(), result);
45 } 45 }
46 46
47 bool SetVar(const char* variable_name, 47 bool SetVar(const char* variable_name,
48 const std::string& new_value) override { 48 const std::string& new_value) override {
49 return SetVarImpl(variable_name, new_value); 49 return SetVarImpl(variable_name, new_value);
50 } 50 }
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 for (size_t i = 0; i < result_indices.size(); i++) 230 for (size_t i = 0; i < result_indices.size(); i++)
231 result[i] = &storage_data[result_indices[i]]; 231 result[i] = &storage_data[result_indices[i]];
232 result[result_indices.size()] = 0; // Null terminator. 232 result[result_indices.size()] = 0; // Null terminator.
233 233
234 return result; 234 return result;
235 } 235 }
236 236
237 #endif // OS_POSIX 237 #endif // OS_POSIX
238 238
239 } // namespace base 239 } // namespace base
OLDNEW
« no previous file with comments | « no previous file | base/strings/string_util.h » ('j') | components/crash/content/app/breakpad_linux.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698