Bläddra i källkod

cmFileSys.h/c : Added 'user' directory prefixed functions for cmFileSysMakeFn() and cmFileSysMakeDir().

master
kevin 8 år sedan
förälder
incheckning
2a6739ab0f
2 ändrade filer med 180 tillägg och 36 borttagningar
  1. 143
    30
      cmFileSys.c
  2. 37
    6
      cmFileSys.h

+ 143
- 30
cmFileSys.c Visa fil

467
   return rp;
467
   return rp;
468
 }
468
 }
469
 
469
 
470
+const cmChar_t* cmFileSysVMakeUserFn( cmFileSysH_t h, const cmChar_t* dirPrefix, const cmChar_t* fn, const cmChar_t* ext, va_list vl )
471
+{
472
+  return cmFileSysMakeFn(h,cmFileSysUserDir(h),fn,ext,dirPrefix,NULL);
473
+}
474
+
470
 const cmChar_t* cmFileSysMakeFn( cmFileSysH_t h, const cmChar_t* dir, const cmChar_t* fn, const cmChar_t* ext, ... )
475
 const cmChar_t* cmFileSysMakeFn( cmFileSysH_t h, const cmChar_t* dir, const cmChar_t* fn, const cmChar_t* ext, ... )
471
 {
476
 {
472
   va_list vl;
477
   va_list vl;
476
   return retPtr;
481
   return retPtr;
477
 }
482
 }
478
 
483
 
484
+const cmChar_t* cmFileSysMakeUserFn( cmFileSysH_t h, const cmChar_t* dir, const cmChar_t* fn, const cmChar_t* ext, ... )
485
+{
486
+  va_list vl;
487
+  va_start(vl,ext);
488
+  const cmChar_t* retPtr = cmFileSysVMakeUserFn(h,dir,fn,ext,vl);
489
+  va_end(vl);
490
+  return retPtr;
491
+}
492
+
493
+
494
+const cmChar_t* cmFileSysVMakeDir(     cmFileSysH_t h, const cmChar_t* dir,  va_list vl )
495
+{ return cmFileSysVMakeFn(h,dir,NULL,NULL,vl); }
496
+
497
+const cmChar_t* cmFileSysMakeDir(      cmFileSysH_t h, const cmChar_t* dir,  ... )
498
+{
499
+  va_list vl;
500
+  va_start(vl,dir);
501
+  const cmChar_t* retPtr = cmFileSysVMakeFn(h,dir,NULL,NULL,vl);
502
+  va_end(vl);
503
+  return retPtr;
504
+}
505
+
506
+const cmChar_t* cmFileSysVMakeUserDir( cmFileSysH_t h, const cmChar_t* dir,  va_list vl )
507
+{ return cmFileSysVMakeUserFn(h,dir,NULL,NULL,vl);  }
508
+
509
+const cmChar_t* cmFileSysMakeUserDir(  cmFileSysH_t h, const cmChar_t* dir,  ... )
510
+{
511
+  va_list vl;
512
+  va_start(vl,dir);
513
+  const cmChar_t* retPtr = cmFileSysVMakeUserFn(h,dir,NULL,NULL,vl);
514
+  va_end(vl);
515
+  return retPtr;
516
+}
517
+
518
+
479
 void cmFileSysFreeFn( cmFileSysH_t h, const cmChar_t* fn )
519
 void cmFileSysFreeFn( cmFileSysH_t h, const cmChar_t* fn )
480
 {
520
 {
481
   cmFs_t* p = _cmFileSysHandleToPtr(h);
521
   cmFs_t* p = _cmFileSysHandleToPtr(h);
535
   return kOkFsRC;
575
   return kOkFsRC;
536
 }
576
 }
537
 
577
 
578
+cmFsRC_t    cmFileSysMkUserDir( cmFileSysH_t h, const cmChar_t* dir0 )
579
+{
580
+  const cmChar_t* dir = cmFileSysMakeUserFn(h,dir0,NULL,NULL,NULL);
581
+  
582
+  if( dir == NULL )
583
+    return _cmFileSysError(_cmFileSysHandleToPtr(h),kFormFnFailFsRC,0, "The specified directory string /<user>/%s could not be formed.",cmStringNullGuard(dir0));
584
+  
585
+  cmFsRC_t rc = cmFileSysMkDir(h,dir);
586
+  cmFileSysFreeFn(h,dir);
587
+  return rc;
588
+}
589
+
590
+
538
 cmFsRC_t    cmFileSysMkDirAll( cmFileSysH_t h, const cmChar_t* dir )
591
 cmFsRC_t    cmFileSysMkDirAll( cmFileSysH_t h, const cmChar_t* dir )
539
 {
592
 {
540
   cmFsRC_t   rc = kOkFsRC;
593
   cmFsRC_t   rc = kOkFsRC;
561
   return rc;
614
   return rc;
562
 }
615
 }
563
 
616
 
617
+cmFsRC_t    cmFileSysMkUserDirAll( cmFileSysH_t h, const cmChar_t* dir0 )
618
+{
619
+  const cmChar_t* dir = cmFileSysMakeUserFn(h,dir0,NULL,NULL,NULL);
620
+  
621
+  if( dir == NULL )
622
+    return _cmFileSysError(_cmFileSysHandleToPtr(h),kFormFnFailFsRC,0,"The specified directory string /<user>/%s could not be formed.",cmStringNullGuard(dir0));
623
+  
624
+  cmFsRC_t rc = cmFileSysMkDirAll(h,dir);
625
+  cmFileSysFreeFn(h,dir);
626
+  return rc;
627
+}
628
+
564
 cmFileSysPathPart_t* cmFileSysPathParts( cmFileSysH_t h, const cmChar_t* pathStr )
629
 cmFileSysPathPart_t* cmFileSysPathParts( cmFileSysH_t h, const cmChar_t* pathStr )
565
 {
630
 {
566
 
631
 
1171
   return retPtr;
1236
   return retPtr;
1172
 }
1237
 }
1173
 
1238
 
1239
+const cmChar_t* cmFsVMakeUserFn( const cmChar_t* dirPrefix, const cmChar_t* fn, const cmChar_t* ext, va_list vl )
1240
+{ return cmFileSysVMakeUserFn(_cmFsH,dirPrefix,fn,ext,vl); }
1241
+
1242
+const cmChar_t* cmFsMakeUserFn(  const cmChar_t* dirPrefix, const cmChar_t* fn, const cmChar_t* ext, ... )
1243
+{
1244
+  va_list vl;
1245
+  va_start(vl,ext);
1246
+  const cmChar_t* retPtr = cmFsVMakeUserFn(dirPrefix,fn,ext,vl);
1247
+  va_end(vl);
1248
+  return retPtr;
1249
+}
1250
+
1251
+const cmChar_t* cmFsVMakeDir(     const cmChar_t* dir,  va_list vl )
1252
+{ return cmFileSysVMakeDir(_cmFsH,dir,vl); }
1253
+
1254
+const cmChar_t* cmFsMakeDir(     const cmChar_t* dir,  ... )
1255
+{
1256
+  va_list vl;
1257
+  va_start(vl,dir);
1258
+  const cmChar_t* retPtr = cmFsVMakeDir(dir,vl);
1259
+  va_end(vl);
1260
+  return retPtr;
1261
+}
1262
+
1263
+const cmChar_t* cmFsVMakeUserDir( const cmChar_t* dir,  va_list vl )
1264
+{ return cmFileSysVMakeUserDir(_cmFsH,dir,vl);  }
1265
+
1266
+const cmChar_t* cmFsMakeUserDir( const cmChar_t* dir,  ... )
1267
+{
1268
+  va_list vl;
1269
+  va_start(vl,dir);
1270
+  const cmChar_t* retPtr = cmFsVMakeUserDir(dir,vl);
1271
+  va_end(vl);
1272
+  return retPtr;
1273
+}
1274
+
1174
 void                 cmFsFreeFn(  const cmChar_t* fn )
1275
 void                 cmFsFreeFn(  const cmChar_t* fn )
1175
 { cmFileSysFreeFn(_cmFsH, fn); }
1276
 { cmFileSysFreeFn(_cmFsH, fn); }
1176
 
1277
 
1183
 cmFsRC_t             cmFsMkDirAll( const cmChar_t* dir )
1284
 cmFsRC_t             cmFsMkDirAll( const cmChar_t* dir )
1184
 { return cmFileSysMkDirAll(_cmFsH,dir); }
1285
 { return cmFileSysMkDirAll(_cmFsH,dir); }
1185
 
1286
 
1287
+cmFsRC_t             cmFsMkUserDir( const cmChar_t* dir )
1288
+{ return cmFileSysMkUserDir(_cmFsH,dir); }
1289
+
1290
+cmFsRC_t             cmFsMkUserDirAll( const cmChar_t* dir )
1291
+{ return cmFileSysMkUserDirAll(_cmFsH,dir); }
1292
+
1186
 cmFileSysPathPart_t* cmFsPathParts(     const cmChar_t* pathNameStr )
1293
 cmFileSysPathPart_t* cmFsPathParts(     const cmChar_t* pathNameStr )
1187
 { return cmFileSysPathParts(_cmFsH,pathNameStr); }
1294
 { return cmFileSysPathParts(_cmFsH,pathNameStr); }
1188
 
1295
 
1222
 //(
1329
 //(
1223
 //
1330
 //
1224
 // cmFileSysTest() function gives usage and testing examples 
1331
 // cmFileSysTest() function gives usage and testing examples 
1225
-// for some of the cmFileSys functions.
1226
-// Note that the HOME_DIR macro should be set to your true
1227
-// $HOME directroy and SRC_DIR should be set to any existing
1228
-// and accessible directory.
1332
+// for some of the cmFileSys functions. Note that the
1333
+// 'dir0' directory should exist and contain files and
1334
+// a shallow sub-tree in order to exercise the directory
1335
+// tree walking routine.
1229
 //
1336
 //
1230
 //)
1337
 //)
1231
 //(
1338
 //(
1232
 
1339
 
1233
-#if defined(OS_OSX)
1234
-#define HOME_DIR "/Users/kevin"
1235
-#else
1236
-#define HOME_DIR "/home/kevin"
1237
-#endif
1238
-
1239
-#define SRC_DIR  HOME_DIR"/src"
1240
 
1340
 
1241
 void _cmFileSysTestFnParser( 
1341
 void _cmFileSysTestFnParser( 
1242
   cmFileSysH_t    h, 
1342
   cmFileSysH_t    h, 
1250
 
1350
 
1251
   cmFsRC_t        rc      = kOkFsRC;
1351
   cmFsRC_t        rc      = kOkFsRC;
1252
   cmFileSysH_t    h       = cmFileSysNullHandle;
1352
   cmFileSysH_t    h       = cmFileSysNullHandle;
1253
-  const char      dir0[]  = SRC_DIR; 
1254
-  const char      dir1[]  = HOME_DIR"/blah";
1255
-  const char      file0[] = HOME_DIR"/.emacs";
1256
-  const char      file1[] = HOME_DIR"/blah.txt";
1353
+  const char*     dir0    = cmFsMakeUserDir("src/kc",NULL); 
1354
+  const char*     dir1    = cmFsMakeUserDir("blah",NULL,NULL,NULL);
1355
+  const char*     file0   = cmFsMakeUserFn(NULL,".emacs",NULL,NULL);
1356
+  const char*     file1   = cmFsMakeUserFn(NULL,"blah","txt",NULL);
1257
   const char      not[]   = " not ";
1357
   const char      not[]   = " not ";
1258
   const char      e[]     = " ";
1358
   const char      e[]     = " ";
1259
   bool            fl      = false;
1359
   bool            fl      = false;
1288
   //----------------------------------------------------------
1388
   //----------------------------------------------------------
1289
   // Test the file name creation functions
1389
   // Test the file name creation functions
1290
   //
1390
   //
1291
-  if((fn = cmFileSysMakeFn(h,HOME_DIR,"cmFileSys",
1292
-        "c","src","cm","src",NULL)) != NULL)
1391
+  if((fn = cmFileSysMakeUserFn(h,"src","cmFileSys",
1392
+        "c","cm","src",NULL)) != NULL)
1293
   {
1393
   {
1294
     printf("File:'%s'\n",fn);
1394
     printf("File:'%s'\n",fn);
1295
   }
1395
   }
1296
   cmFileSysFreeFn(h,fn);
1396
   cmFileSysFreeFn(h,fn);
1297
 
1397
 
1298
-  if((fn = cmFileSysMakeFn(h,HOME_DIR,"cmFileSys",
1299
-        ".c","/src/","/cm/","/src/",NULL)) != NULL )
1398
+  if((fn = cmFileSysMakeUserFn(h,"src","cmFileSys",
1399
+        ".c","/cm/","/src/",NULL)) != NULL )
1300
   {
1400
   {
1301
     printf("File:'%s'\n",fn);
1401
     printf("File:'%s'\n",fn);
1302
   }
1402
   }
1305
   //----------------------------------------------------------
1405
   //----------------------------------------------------------
1306
   // Test the file name parsing functions
1406
   // Test the file name parsing functions
1307
   //
1407
   //
1308
-  _cmFileSysTestFnParser(h,&ctx->rpt,
1309
-                         HOME_DIR"/src/cm/src/cmFileSys.c");
1310
-
1311
-  _cmFileSysTestFnParser(h,&ctx->rpt,
1312
-                         HOME_DIR"/src/cm/src/cmFileSys");
1313
 
1408
 
1314
-  _cmFileSysTestFnParser(h,&ctx->rpt,
1315
-                         HOME_DIR"/src/cm/src/cmFileSys/");
1409
+  const char* fn0 = cmFileSysMakeUserFn(h,"src/cm/src","cmFileSys","c",NULL);
1410
+  const char* fn1 = cmFileSysMakeUserFn(h,"src/cm/src","cmFileSys",NULL,NULL);
1411
+  const char* fn2 = cmFileSysMakeUserDir(h,"src/cm/src/cmFileSys/",NULL);
1412
+  
1413
+  _cmFileSysTestFnParser(h,&ctx->rpt,fn0);
1414
+  _cmFileSysTestFnParser(h,&ctx->rpt,fn1);
1415
+  _cmFileSysTestFnParser(h,&ctx->rpt,fn2);
1316
 
1416
 
1317
   _cmFileSysTestFnParser(h,&ctx->rpt,"cmFileSys.c");
1417
   _cmFileSysTestFnParser(h,&ctx->rpt,"cmFileSys.c");
1318
   _cmFileSysTestFnParser(h,&ctx->rpt,"/");
1418
   _cmFileSysTestFnParser(h,&ctx->rpt,"/");
1319
   _cmFileSysTestFnParser(h,&ctx->rpt," ");
1419
   _cmFileSysTestFnParser(h,&ctx->rpt," ");
1320
 
1420
 
1421
+  cmFileSysFreeFn(h,fn0);
1422
+  cmFileSysFreeFn(h,fn1);
1423
+  cmFileSysFreeFn(h,fn1);
1424
+
1321
   //----------------------------------------------------------
1425
   //----------------------------------------------------------
1322
   // Test the directory tree walking routines.
1426
   // Test the directory tree walking routines.
1323
   //
1427
   //
1324
-  cmRptPrintf(&ctx->rpt,"Dir Entry Test:\n");
1325
   cmFileSysDirEntry_t* dep;
1428
   cmFileSysDirEntry_t* dep;
1326
   unsigned             dirEntCnt;
1429
   unsigned             dirEntCnt;
1327
   unsigned             filterFlags = kDirFsFl 
1430
   unsigned             filterFlags = kDirFsFl 
1329
                                    | kRecurseFsFl 
1432
                                    | kRecurseFsFl 
1330
                                    | kFullPathFsFl;
1433
                                    | kFullPathFsFl;
1331
 
1434
 
1332
-  if((dep = cmFileSysDirEntries(h,SRC_DIR"/doc",filterFlags,
1333
-                                &dirEntCnt)) != NULL)
1435
+  const char* src_dir = cmFileSysMakeFn(h,dir0,"doc",NULL,NULL);
1436
+
1437
+  cmRptPrintf(&ctx->rpt,"Dir Entry Test: %s\n",src_dir);
1438
+
1439
+  if((dep = cmFileSysDirEntries(h,src_dir,filterFlags,&dirEntCnt)) != NULL)
1334
   {
1440
   {
1335
     unsigned i;
1441
     unsigned i;
1336
     for(i=0; i<dirEntCnt; ++i)
1442
     for(i=0; i<dirEntCnt; ++i)
1339
     cmFileSysDirFreeEntries(h,dep);
1445
     cmFileSysDirFreeEntries(h,dep);
1340
   }
1446
   }
1341
 
1447
 
1448
+  cmFileSysFreeFn(h,src_dir);
1449
+
1342
   //----------------------------------------------------------
1450
   //----------------------------------------------------------
1343
   // Test the directory parsing/building routines.
1451
   // Test the directory parsing/building routines.
1344
   //
1452
   //
1372
   //----------------------------------------------------------
1480
   //----------------------------------------------------------
1373
   // Test the extended mkdir routine.
1481
   // Test the extended mkdir routine.
1374
   //
1482
   //
1375
-  if( cmFileSysMkDirAll(h, HOME_DIR"/temp/doc/doc" )!=kOkFsRC )
1483
+  if( cmFileSysMkUserDirAll(h, "/temp/doc/doc" )!=kOkFsRC )
1376
   {
1484
   {
1377
     cmRptPrint(&ctx->rpt,"cmFileSysMkDirAll() failed.\n");
1485
     cmRptPrint(&ctx->rpt,"cmFileSysMkDirAll() failed.\n");
1378
   }
1486
   }
1383
 
1491
 
1384
   cmRptPrintf(&ctx->rpt,"File Test done\n");
1492
   cmRptPrintf(&ctx->rpt,"File Test done\n");
1385
 
1493
 
1494
+  cmFsFreeFn(dir0);
1495
+  cmFsFreeFn(dir1);
1496
+  cmFsFreeFn(file0);
1497
+  cmFsFreeFn(file1);
1498
+
1386
   return rc;    
1499
   return rc;    
1387
 }
1500
 }
1388
 
1501
 

+ 37
- 6
cmFileSys.h Visa fil

35
     kLinuxFailFsRC,
35
     kLinuxFailFsRC,
36
     kInvalidDirFsRC,
36
     kInvalidDirFsRC,
37
     kGenFileFailFsRC,
37
     kGenFileFailFsRC,
38
-    kAccessFailFsRC
38
+    kAccessFailFsRC,
39
+    kFormFnFailFsRC
39
   };
40
   };
40
 
41
 
41
 
42
 
86
   // The memory used by the string will exist until it is released with cmFileSysFreeFn()
87
   // The memory used by the string will exist until it is released with cmFileSysFreeFn()
87
   // or the cmFileSys object is finalized.
88
   // or the cmFileSys object is finalized.
88
   const cmChar_t* cmFileSysMakeFn( cmFileSysH_t h, const cmChar_t* dirPrefix, const cmChar_t* fn, const cmChar_t* ext, ... );
89
   const cmChar_t* cmFileSysMakeFn( cmFileSysH_t h, const cmChar_t* dirPrefix, const cmChar_t* fn, const cmChar_t* ext, ... );
90
+
91
+  // Same as cmFileSysMakeFn but prefixes the entire file path with the current users
92
+  // home directory. (i.e. /home/me/<dirPrefix>/<var-args-dir-0>/<var-args-dir1>/<fn>.<ext>)
93
+  const cmChar_t* cmFileSysMakeUserFn( cmFileSysH_t h, const cmChar_t* dirPrefix, const cmChar_t* fn, const cmChar_t* ext, ... );
89
   
94
   
90
-  // Same as cmFileSysMakeFn with but with a va_list argument to accept the var. args. parameters.
95
+  // Same as cmFileSysMakeFn but with a va_list argument to accept the var. args. parameters.
91
   const cmChar_t* cmFileSysVMakeFn( cmFileSysH_t h, const cmChar_t* dirPrefix, const cmChar_t* fn, const cmChar_t* ext, va_list vl );
96
   const cmChar_t* cmFileSysVMakeFn( cmFileSysH_t h, const cmChar_t* dirPrefix, const cmChar_t* fn, const cmChar_t* ext, va_list vl );
92
 
97
 
98
+  // Same as cmFileSysMakeUserFn but with a va_list argument to accept the var. args parameters.
99
+  const cmChar_t* cmFileSysVMakeUserFn( cmFileSysH_t h, const cmChar_t* dirPrefix, const cmChar_t* fn, const cmChar_t* ext, va_list vl );
100
+
101
+  // Equivalent to same named cmFileSysMakeFn() functions but form a directory
102
+  // path rather than a file name path.
103
+  const cmChar_t* cmFileSysVMakeDir(     cmFileSysH_t h, const cmChar_t* dir,  va_list vl );
104
+  const cmChar_t* cmFileSysMakeDir(      cmFileSysH_t h, const cmChar_t* dir,  ... );
105
+  const cmChar_t* cmFileSysVMakeUserDir( cmFileSysH_t h, const cmChar_t* dir,  va_list vl );
106
+  const cmChar_t* cmFileSysMakeUserDir(  cmFileSysH_t h, const cmChar_t* dir,  ... );
107
+  
93
   // Release the file name created through an earlier call to cmFileSysMakeFn().
108
   // Release the file name created through an earlier call to cmFileSysMakeFn().
94
   void            cmFileSysFreeFn( cmFileSysH_t h, const cmChar_t* fn );
109
   void            cmFileSysFreeFn( cmFileSysH_t h, const cmChar_t* fn );
95
 
110
 
103
   // final directory.
118
   // final directory.
104
   cmFsRC_t    cmFileSysMkDir( cmFileSysH_t h, const cmChar_t* dir );
119
   cmFsRC_t    cmFileSysMkDir( cmFileSysH_t h, const cmChar_t* dir );
105
   
120
   
121
+  // Same as cmFileSysMkDir() but 'dir' is automatically prefixed with the users home directory.
122
+  cmFsRC_t    cmFileSysMkUserDir( cmFileSysH_t h, const cmChar_t* dir );
123
+  
106
   // Create a complete directory path - where any of the path segments may
124
   // Create a complete directory path - where any of the path segments may
107
   // not already exist.
125
   // not already exist.
108
   cmFsRC_t    cmFileSysMkDirAll( cmFileSysH_t h, const cmChar_t* dir );
126
   cmFsRC_t    cmFileSysMkDirAll( cmFileSysH_t h, const cmChar_t* dir );
109
 
127
 
128
+  // Same as cmFileSysMkDir() but 'dir' is automatically prefixed with the users home directory.
129
+  cmFsRC_t    cmFileSysMkUserDirAll( cmFileSysH_t h, const cmChar_t* dir );
130
+
110
   // Parse a path into its parts:
131
   // Parse a path into its parts:
111
   //  
132
   //  
112
   // Return record used by cmFileSysParts()
133
   // Return record used by cmFileSysParts()
212
   bool            cmFsIsFile( const cmChar_t* fnStr ); 
233
   bool            cmFsIsFile( const cmChar_t* fnStr ); 
213
   bool            cmFsIsLink( const cmChar_t* fnStr ); 
234
   bool            cmFsIsLink( const cmChar_t* fnStr ); 
214
 
235
 
215
-  const cmChar_t* cmFsVMakeFn( const cmChar_t* dirPrefix, const cmChar_t* fn, const cmChar_t* ext, va_list vl );
216
-  const cmChar_t* cmFsMakeFn(  const cmChar_t* dirPrefix, const cmChar_t* fn, const cmChar_t* ext, ... );
217
-  void            cmFsFreeFn(  const cmChar_t* fn );
218
-  cmFsRC_t        cmFsGenFn(  const cmChar_t* dir, const cmChar_t* prefixStr, const cmChar_t* extStr, const cmChar_t** fnPtr );
236
+  const cmChar_t* cmFsVMakeFn(     const cmChar_t* dirPrefix, const cmChar_t* fn, const cmChar_t* ext, va_list vl );
237
+  const cmChar_t* cmFsMakeFn(      const cmChar_t* dirPrefix, const cmChar_t* fn, const cmChar_t* ext, ... );
238
+  const cmChar_t* cmFsVMakeUserFn( const cmChar_t* dirPrefix, const cmChar_t* fn, const cmChar_t* ext, va_list vl );
239
+  const cmChar_t* cmFsMakeUserFn(  const cmChar_t* dirPrefix, const cmChar_t* fn, const cmChar_t* ext, ... );
240
+  
241
+  const cmChar_t* cmFsVMakeDir(     const cmChar_t* dirPrefix,  va_list vl );
242
+  const cmChar_t* cmFsMakeDir(      const cmChar_t* dirPrefix,  ... );
243
+  const cmChar_t* cmFsVMakeUserDir( const cmChar_t* dirPrefix,  va_list vl );
244
+  const cmChar_t* cmFsMakeUserDir(  const cmChar_t* dirPrefix,  ... );
245
+  
246
+  void            cmFsFreeFn(      const cmChar_t* fn );
247
+  cmFsRC_t        cmFsGenFn(       const cmChar_t* dir, const cmChar_t* prefixStr, const cmChar_t* extStr, const cmChar_t** fnPtr );
219
 
248
 
220
 
249
 
221
   cmFsRC_t        cmFsMkDir( const cmChar_t* dir );
250
   cmFsRC_t        cmFsMkDir( const cmChar_t* dir );
251
+  cmFsRC_t        cmFsMkUserDir( const cmChar_t* dir );
222
   cmFsRC_t        cmFsMkDirAll( const cmChar_t* dir );
252
   cmFsRC_t        cmFsMkDirAll( const cmChar_t* dir );
253
+  cmFsRC_t        cmFsMkUserDirAll( const cmChar_t* dir );
223
 
254
 
224
   cmFileSysPathPart_t* cmFsPathParts(     const cmChar_t* pathNameStr );
255
   cmFileSysPathPart_t* cmFsPathParts(     const cmChar_t* pathNameStr );
225
   void   cmFsFreePathParts( cmFileSysPathPart_t* p );
256
   void   cmFsFreePathParts( cmFileSysPathPart_t* p );

Laddar…
Avbryt
Spara