1 // Copyright 2014 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #include "barcode.h" 8 FX_BOOL BC_FX_ByteString_Replace(CFX_ByteString& dst, 9 FX_DWORD first, 10 FX_DWORD last, 11 int32_t count, 12 FX_CHAR c) { 13 if (first > last || count <= 0) { 14 return FALSE; 15 } 16 dst.Delete(first, last - first); 17 for (int32_t i = 0; i < count; i++) { 18 dst.Insert(0, c); 19 } 20 return TRUE; 21 } 22 void BC_FX_ByteString_Append(CFX_ByteString& dst, int32_t count, FX_CHAR c) { 23 for (int32_t i = 0; i < count; i++) { 24 dst += c; 25 } 26 } 27 void BC_FX_ByteString_Append(CFX_ByteString& dst, const CFX_ByteArray& ba) { 28 for (int32_t i = 0; i < ba.GetSize(); i++) { 29 dst += ba[i]; 30 } 31 } 32 void BC_FX_PtrArray_Sort(CFX_PtrArray& src, BC_PtrArrayCompareCallback fun) { 33 int32_t nLength = src.GetSize(); 34 FX_BOOL changed = true; 35 do { 36 changed = false; 37 for (int32_t i = 0; i < nLength - 1; i++) { 38 if (fun(src[i + 1], src[i])) { 39 void* temp = src[i]; 40 src.SetAt(i, src[i + 1]); 41 src.SetAt(i + 1, temp); 42 changed = true; 43 } 44 } 45 } while (changed); 46 } 47