MCPcopy Create free account
hub / github.com/boostorg/build / cwd_init

Function cwd_init

src/engine/cwd.cpp:42–78  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40
41
42void cwd_init( void )
43{
44 int buffer_size = PATH_MAX;
45 char * cwd_buffer = 0;
46 int error;
47
48 assert( !cwd_ );
49
50 do
51 {
52 char * const buffer = (char *)BJAM_MALLOC_RAW( buffer_size );
53#ifdef OS_VMS
54 /* cwd in POSIX-format */
55 cwd_buffer = getcwd( buffer, buffer_size, 0 );
56#else
57 cwd_buffer = getcwd( buffer, buffer_size );
58#endif
59 error = errno;
60 if ( cwd_buffer )
61 {
62 /* We store the path using its canonical/long/key format. */
63 OBJECT * const cwd = object_new( cwd_buffer );
64 cwd_ = path_as_key( cwd );
65 object_free( cwd );
66 cwd_s = cwd_buffer;
67 }
68 buffer_size *= 2;
69 BJAM_FREE_RAW( buffer );
70 }
71 while ( !cwd_ && error == ERANGE );
72
73 if ( !cwd_ )
74 {
75 perror( "can not get current working directory" );
76 exit( EXITBAD );
77 }
78}
79
80
81OBJECT * cwd( void )

Callers 1

mainFunction · 0.85

Calls 3

object_newFunction · 0.85
object_freeFunction · 0.85
path_as_keyFunction · 0.70

Tested by

no test coverage detected