File: c_factory.e

package info (click to toggle)
smarteiffel 1.1-11
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 12,288 kB
  • ctags: 40,785
  • sloc: ansic: 35,791; lisp: 4,036; sh: 1,783; java: 895; ruby: 613; python: 209; makefile: 115; csh: 78; cpp: 50
file content (36 lines) | stat: -rw-r--r-- 887 bytes parent folder | download | duplicates (4)
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
class C_FACTORY

feature

   string_make(c_string: NATIVE_ARRAY[CHARACTER]): STRING is
         -- Creates a new Eiffel STRING using `c_string' contents as
         -- a model (for the contents of the new STRING).
      require
         c_string.is_not_null
      local
         count, i: INTEGER;
      do
         -- Compute the length of the `c_string' in `count' :
         from
         until
            c_string.item(count) = '%U'
         loop
            count := count + 1;
         end;
         count := count + 1;

         -- Allocate a new Eiffel STRING with the appropriate
         -- capacity :
         !!Result.make(count);

         -- To copy the `c_string' contents in the `Result' :
         from
         until
            count = i
         loop
            Result.add_last(c_string.item(i));
            i := i + 1;
         end;
      end;

end --  C_FACTORY