| // 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); | |
| } |