/vqdr/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/vqdr/trunk

« back to all changes in this revision

Viewing changes to src/utils/utils.vala

  • Committer: Gustav Hartvigsson
  • Date: 2021-11-16 12:44:52 UTC
  • Revision ID: gustav.hartvigsson@gmail.com-20211116124452-g9245bvzwcyy9wk9
Added licencing information.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
 * Created by Gustav Hartivgsson.
5
5
 */
6
6
 
7
 
namespace Vee {
8
 
  public delegate void FreeFunc (void * ptr);
9
 
 
10
 
 
 
7
namespace Utils {
11
8
  public int str_cmp (string a, string b) {
12
9
    return a.collate (b);
13
10
  }
14
11
  
15
 
 
16
12
  public void print_ln (string str, ...) {
17
13
    var va = va_list ();
18
 
    var tmp = str + "\n";
19
 
    stdout.vprintf (tmp, va);
20
 
  }
21
 
 
22
 
 
23
 
  public void err_print_ln (string str, ...) {
24
 
    var va = va_list ();
25
 
    var tmp = str + "\n";
26
 
    stderr.vprintf (tmp, va);
27
 
  }
28
 
 
29
 
 
 
14
    
 
15
    // Reallocate the string as it is not owned by the function.
 
16
    var tmp = str + "\n";
 
17
    
 
18
    // Hopefully this does not create any memony leaks. :-)
 
19
    print (tmp.vprintf (va));
 
20
  }
 
21
  
30
22
  public string object_to_string (GLib.Object obj) {
31
23
     StringBuilder strbldr = new StringBuilder ();
32
24
     internal_object_to_string (obj, ref strbldr);
33
25
     return strbldr.str;
34
26
  }
35
27
 
36
 
 
37
 
  string collect_string (string[] segments, string? separator = null) {
38
 
    var _len = segments.length;
39
 
    if (_len == 0) {
40
 
      return "";
41
 
    }
42
 
    if (_len == 1) {
43
 
      return segments[0];
44
 
    }
45
 
    StringBuilder strbldr = new StringBuilder ();
46
 
    if (separator != null) {
47
 
      for (var i = 0; i <= _len; i++) {
48
 
        strbldr.append (segments[i]);
49
 
        if (i < _len) {
50
 
          strbldr.append (separator);
51
 
        }
52
 
      }
53
 
    } else {
54
 
      for (var i = 0; i <= _len; i++) {
55
 
        strbldr.append (segments[i]);
56
 
      }
57
 
    } 
58
 
    return strbldr.str;
59
 
  }
60
 
 
61
 
 
62
 
  internal unowned StringBuilder internal_object_to_string (GLib.Object obj,
 
28
  private unowned StringBuilder internal_object_to_string (GLib.Object obj,
63
29
                                                  ref StringBuilder str_builder,
64
 
                                                  int32 nesting = 0) {
65
 
    GLib.ObjectClass obj_class =
66
 
      (GLib.ObjectClass) obj.get_type ().class_ref ();
 
30
                                                  int nesting = 0) {
 
31
    GLib.ObjectClass obj_class = (GLib.ObjectClass) obj.get_type ().class_ref ();
67
32
    
68
33
    for (var i = 0; i < nesting; i++) {
69
34
     str_builder.append ("\t");
99
64
                 .append (prop_name)
100
65
                 .append (":");
101
66
 
 
67
 
 
68
      
 
69
      
102
70
      switch (prop_val.type ()) {
103
71
        case (GLib.Type.STRING):
104
72
          if (prop_val.dup_string () == null) {