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"
BC_FX_ByteString_Replace(CFX_ByteString & dst,FX_DWORD first,FX_DWORD last,int32_t count,FX_CHAR c)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 }
BC_FX_ByteString_Append(CFX_ByteString & dst,int32_t count,FX_CHAR c)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 }
BC_FX_ByteString_Append(CFX_ByteString & dst,const CFX_ByteArray & ba)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 }
BC_FX_PtrArray_Sort(CFX_PtrArray & src,BC_PtrArrayCompareCallback fun)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