OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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/clipboard_util.h" | 5 #include "base/clipboard_util.h" |
6 | 6 |
7 #include <shellapi.h> | 7 #include <shellapi.h> |
8 #include <shlwapi.h> | 8 #include <shlwapi.h> |
9 #include <wininet.h> | 9 #include <wininet.h> |
10 | 10 |
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
422 static const char* start_markup = | 422 static const char* start_markup = |
423 "<html>\r\n<body>\r\n<!--StartFragment-->\r\n"; | 423 "<html>\r\n<body>\r\n<!--StartFragment-->\r\n"; |
424 static const char* end_markup = | 424 static const char* end_markup = |
425 "\r\n<!--EndFragment-->\r\n</body>\r\n</html>"; | 425 "\r\n<!--EndFragment-->\r\n</body>\r\n</html>"; |
426 | 426 |
427 // Calculate offsets | 427 // Calculate offsets |
428 size_t start_html_offset = strlen(header) - strlen(NUMBER_FORMAT) * 4 + | 428 size_t start_html_offset = strlen(header) - strlen(NUMBER_FORMAT) * 4 + |
429 MAX_DIGITS * 4; | 429 MAX_DIGITS * 4; |
430 if (!base_url.empty()) { | 430 if (!base_url.empty()) { |
431 start_html_offset += strlen(source_url_prefix) + | 431 start_html_offset += strlen(source_url_prefix) + |
432 base_url.length() + 1; | 432 base_url.length() + 2; // Add 2 for \r\n. |
433 } | 433 } |
434 size_t start_fragment_offset = start_html_offset + strlen(start_markup); | 434 size_t start_fragment_offset = start_html_offset + strlen(start_markup); |
435 size_t end_fragment_offset = start_fragment_offset + html.length(); | 435 size_t end_fragment_offset = start_fragment_offset + html.length(); |
436 size_t end_html_offset = end_fragment_offset + strlen(end_markup); | 436 size_t end_html_offset = end_fragment_offset + strlen(end_markup); |
437 | 437 |
438 std::string result = StringPrintf(header, start_html_offset, | 438 std::string result = StringPrintf(header, start_html_offset, |
439 end_html_offset, start_fragment_offset, end_fragment_offset); | 439 end_html_offset, start_fragment_offset, end_fragment_offset); |
440 if (!base_url.empty()) { | 440 if (!base_url.empty()) { |
441 result.append(source_url_prefix); | 441 result.append(source_url_prefix); |
442 result.append(base_url); | 442 result.append(base_url); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
476 size_t tag_start = cf_html.find("StartFragment", markup_start); | 476 size_t tag_start = cf_html.find("StartFragment", markup_start); |
477 size_t fragment_start = cf_html.find('>', tag_start) + 1; | 477 size_t fragment_start = cf_html.find('>', tag_start) + 1; |
478 size_t tag_end = cf_html.rfind("EndFragment", std::string::npos); | 478 size_t tag_end = cf_html.rfind("EndFragment", std::string::npos); |
479 size_t fragment_end = cf_html.rfind('<', tag_end); | 479 size_t fragment_end = cf_html.rfind('<', tag_end); |
480 if (fragment_start != std::string::npos && | 480 if (fragment_start != std::string::npos && |
481 fragment_end != std::string::npos) { | 481 fragment_end != std::string::npos) { |
482 *html = cf_html.substr(fragment_start, fragment_end - fragment_start); | 482 *html = cf_html.substr(fragment_start, fragment_end - fragment_start); |
483 TrimWhitespace(*html, TRIM_ALL, html); | 483 TrimWhitespace(*html, TRIM_ALL, html); |
484 } | 484 } |
485 } | 485 } |
OLD | NEW |