File: Flatten.cc

package info (click to toggle)
eclipse-titan 6.1.0-1
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 79,084 kB
  • ctags: 29,092
  • sloc: cpp: 210,764; ansic: 44,862; yacc: 21,034; sh: 12,594; makefile: 12,225; lex: 8,972; xml: 5,348; java: 4,849; perl: 3,780; python: 2,834; php: 175
file content (43 lines) | stat: -rw-r--r-- 1,244 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/******************************************************************************
 * Copyright (c) 2000-2016 Ericsson Telecom AB
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *   Balasko, Jeno
 *   Raduly, Csaba
 *
 ******************************************************************************/
#include <TTCN3.hh>
#include <ctype.h>

#ifndef OLD_NAMES
namespace Flattener {
#endif

UNIVERSAL_CHARSTRING flatten(UNIVERSAL_CHARSTRING const& par) {
  TTCN_Buffer buf;
  const int max = par.lengthof();
  for (int i = 0; i < max; ++i) {
    universal_char uc = par[i].get_uchar();
    //if ( !uc.uc_group && !uc.uc_plane && !uc.uc_row && isprint(uc.uc_cell))

    // Drop characters which are in 0000-00FF and unprintable
    if ( uc.uc_group || uc.uc_plane || uc.uc_row || isprint(uc.uc_cell))
    {
      buf.put_s(4, (const unsigned char*)&uc);
    }
  }
  buf.put_s(4, (const unsigned char*)"\0\0\0\n");

  UNIVERSAL_CHARSTRING retval;
  buf.get_string(retval);
  return retval;
}


#ifndef OLD_NAMES
} // namespace
#endif