| // Copyright 2014 PDFium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| |
| #include "barcode.h" |
| FX_BOOL BC_FX_ByteString_Replace(CFX_ByteString& dst, |
| FX_DWORD first, |
| FX_DWORD last, |
| int32_t count, |
| FX_CHAR c) { |
| if (first > last || count <= 0) { |
| return FALSE; |
| } |
| dst.Delete(first, last - first); |
| for (int32_t i = 0; i < count; i++) { |
| dst.Insert(0, c); |
| } |
| return TRUE; |
| } |
| void BC_FX_ByteString_Append(CFX_ByteString& dst, int32_t count, FX_CHAR c) { |
| for (int32_t i = 0; i < count; i++) { |
| dst += c; |
| } |
| } |
| void BC_FX_ByteString_Append(CFX_ByteString& dst, const CFX_ByteArray& ba) { |
| for (int32_t i = 0; i < ba.GetSize(); i++) { |
| dst += ba[i]; |
| } |
| } |
| void BC_FX_PtrArray_Sort(CFX_PtrArray& src, BC_PtrArrayCompareCallback fun) { |
| int32_t nLength = src.GetSize(); |
| FX_BOOL changed = true; |
| do { |
| changed = false; |
| for (int32_t i = 0; i < nLength - 1; i++) { |
| if (fun(src[i + 1], src[i])) { |
| void* temp = src[i]; |
| src.SetAt(i, src[i + 1]); |
| src.SetAt(i + 1, temp); |
| changed = true; |
| } |
| } |
| } while (changed); |
| } |