home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 4 / AACD04.ISO / AACD / Programming / PMM / Developer / FD / ini_lib.fd < prev    next >
Encoding:
Text File  |  1999-09-19  |  5.5 KB  |  122 lines

  1. ##base _INIBase
  2. ##bias 30
  3. ##public
  4. *
  5. * ini_lib.fd, v31.00, 27 Mar 1999
  6. * Written by Sebastian "Basty" Vater.
  7. * Copyright © 1999 Seasons. All Rights Reserved.
  8. *
  9. * This library is freeware and royalty-free. This library may also be
  10. * used in commercial software, without royalties.
  11. *
  12. * The ini.library is the base of all programs using ini files
  13. * for configuration. It allows to handle those files easily.
  14. * an ini file looks like (example):
  15. *
  16. * /* The ini.library also supports multiline comments,
  17. *    as you know them from the C/C++ language.
  18. *    This example configures screen modes and user name. */
  19. *
  20. * [Display]
  21. * ScreenWidth = 640            ; comments are allowed!
  22. * ScreenHeight = 256           * aren't they?
  23. * Depth = 4
  24. * ColorTable = 0x000, 0xFFF,
  25. *                     0x777, 0x333
  26. *
  27. * [User]
  28. * FirstName = Sebastian
  29. * LastName = Vater
  30. *
  31. * Miscellanous functions (mainly for coder support)
  32. iniAllocPMem(byteSize)(D0)
  33. iniFreePMem(memoryBlock,byteSize)(A1,D0)
  34. iniAllocNameStr(CStr)(A0)
  35. iniFreeNameStr(NameStr)(A0)
  36. iniSetString(StructPos,CStr)(A0/A1)
  37. iniSetNameStr(StructPos,NameStr)(A0/A1)
  38. *
  39. * INI file management
  40. *
  41. iniOpenDefault(address,name,len)(A0/A1,D0)
  42. iniOpenFile(name,accessMode)(D1/D2)
  43. iniOpenFromFH(fh,len)(A0,D0)
  44. iniOpenMem(address,len)(A0,D0)
  45. iniClose(iniFile)(A0)
  46. iniSaveFile(iniFile,name,accessMode)(A0,D1/D2)
  47. iniSaveToFH(fh,iniFile)(A0/A1)
  48. *
  49. * INI file context construction functions
  50. *
  51. iniCreateContext(ContextName)(A0)
  52. iniFreeContext(ContextStr)(A0)
  53. iniAddContext(iniFile,ContextStr)(A0/A1)
  54. iniRemContext(iniFile)(A0)
  55. iniInsertContext(iniFile,ContextStr,PredContext)(A0/A1/A2)
  56. iniDeleteContext(ContextStr)(A0)
  57. *
  58. * INI file context item construction functions
  59. *
  60. iniCreateContextItem(CStr)(A0)
  61. iniFreeContextItem(ContextItemLine)(A0)
  62. iniAddContextItem(ContextStr,ContextItemLine)(A0/A1)
  63. iniRemContextItem(ContextStr)(A0)
  64. iniInsertContextItem(ContextStr,ContextItemLine,PredLine)(A0/A1/A2)
  65. iniDeleteContextItem(ContextItemLine)(A0)
  66. *
  67. * Evaluating INI context and item fields
  68. *
  69. iniReadLong(iniFile,ContextName,ItemName,Default,Flags)(A0/A1/A2,D0/D1)
  70. iniReadFloat(iniFile,ContextName,ItemName,Default,Flags)(A0/A1/A2,D0/D1)
  71. iniReadStr(iniFile,ContextName,ItemName,Default,Flags)(A0/A1/A2/A3,D0)
  72. iniReadByteA(iniFile,ContextName,ItemName,Array,Entries,Flags)(A0/A1/A2/A3,D0/D1)
  73. iniReadWordA(iniFile,ContextName,ItemName,Array,Entries,Flags)(A0/A1/A2/A3,D0/D1)
  74. iniReadLongA(iniFile,ContextName,ItemName,Array,Entries,Flags)(A0/A1/A2/A3,D0/D1)
  75. iniReadFloatA(iniFile,ContextName,ItemName,Array,Entries,Flags)(A0/A1/A2/A3,D0/D1)
  76. iniReadStrA(iniFile,ContextName,ItemName,Array,Entries,Flags)(A0/A1/A2/A3,D0/D1)
  77. iniWriteLong(iniFile,ContextName,ItemName,Value,Flags,Format,Len,ZeroSep)(A0/A1/A2,D0/D1/D2/D3/D4)
  78. iniWriteFloat(iniFile,ContextName,ItemName,Value,Flags,FltFormat,IntLen,FracLen,ZeroSep)(A0/A1/A2,D0/D1/D2/D3/D4/D5)
  79. iniWriteStr(iniFile,ContextName,ItemName,String,Flags)(A0/A1/A2/A3,D0)
  80. iniWriteByteA(iniFile,ContextName,ItemName,Array,Entries,Flags,Format,Len,ZeroSep)(A0/A1/A2/A3,D0/D1/D2/D3/D4)
  81. iniWriteWordA(iniFile,ContextName,ItemName,Array,Entries,Flags,Format,Len,ZeroSep)(A0/A1/A2/A3,D0/D1/D2/D3/D4)
  82. iniWriteLongA(iniFile,ContextName,ItemName,Array,Entries,Flags,Format,Len,ZeroSep)(A0/A1/A2/A3,D0/D1/D2/D3/D4)
  83. iniWriteFloatA(iniFile,ContextName,ItemName,Array,Entries,Flags,FltFormat,IntLen,FracLen,ZeroSep)(A0/A1/A2/A3,D0/D1/D2/D3/D4/D5)
  84. iniWriteStrA(iniFile,ContextName,ItemName,Array,Entries,Flags)(A0/A1/A2/A3,D0/D1)
  85. *
  86. * Low level functions (these evaluate single lines)
  87. *
  88. iniGetContextName(ContextLine,Buffer)(A0/A1)
  89. iniGetContextItem(ContextStr,ContextItemLine,Buffer)(A0/A1/A2)
  90. iniGetContextItemData(ContextStr,ContextItemLine,Buffer)(A0/A1/A2)
  91. iniGetContextItemDataA(ContextStr,ContextItemLine,Buffer,Number)(A0/A1/A2,D0)
  92. iniCheckComment(ContextStr,ContextItemLine)(A0/A1)
  93. iniGetNumArrays(ContextStr,ContextItemLine)(A0/A1)
  94. iniGetArrayLine(ContextStr,ContextItemLine,Number)(A0/A1,D0)
  95. iniGetArrayPos(ContextStr,ContextItemLine,Number)(A0/A1,D0)
  96. iniGetLong(ContextStr,ContextItemLine,Default)(A0/A1,D0)
  97. iniGetFloat(ContextStr,ContextItemLine,Default)(A0/A1,D0)
  98. iniGetStr(ContextStr,ContextItemLine,Default)(A0/A1/A2)
  99. iniGetByteA(ContextStr,ContextItemLine,Array,Entries)(A0/A1/A2,D0)
  100. iniGetWordA(ContextStr,ContextItemLine,Array,Entries)(A0/A1/A2,D0)
  101. iniGetLongA(ContextStr,ContextItemLine,Array,Entries)(A0/A1/A2,D0)
  102. iniGetFloatA(ContextStr,ContextItemLine,Array,Entries)(A0/A1/A2,D0)
  103. iniGetStrA(ContextStr,ContextItemLine,Array,Entries)(A0/A1/A2,D0)
  104. iniPutLong(ContextStr,ContextItemLine,Value,Format,Len,ZeroSep)(A0/A1,D0/D1/D2/D3)
  105. iniPutFloat(ContextStr,ContextItemLine,Value,FltFormat,IntLen,FracLen,ZeroSep)(A0/A1,D0/D1/D2/D3/D4)
  106. iniPutStr(ContextStr,ContextItemLine,String)(A0/A1/A2)
  107. iniPutByteA(ContextStr,ContextItemLine,Array,Entries,Format,Len,ZeroSep)(A0/A1/A2,D0/D1/D2/D3)
  108. iniPutWordA(ContextStr,ContextItemLine,Array,Entries,Format,Len,ZeroSep)(A0/A1/A2,D0/D1/D2/D3)
  109. iniPutLongA(ContextStr,ContextItemLine,Array,Entries,Format,Len,ZeroSep)(A0/A1/A2,D0/D1/D2/D3)
  110. iniPutFloatA(ContextStr,ContextItemLine,Array,Entries,FltFormat,IntLen,FracLen,ZeroSep)(A0/A1/A2,D0/D1/D2/D3/D4)
  111. iniPutStrA(ContextStr,ContextItemLine,Array,Entries)(A0/A1/A2,D0)
  112. iniStrToInt(String,Default)(A0,D0)
  113. iniIntToStr(Buffer,Integer,Format,Len,ZeroSep)(A0,D0/D1/D2/D3)
  114. iniStrToFloat(String,Default)(A0,D0)
  115. iniFloatToStr(Buffer,Float,FltFormat,IntLen,FracLen,ZeroSep)(A0,D0/D1/D2/D3/D4)
  116. *
  117. * INI scan functions (search for contexts, context items)
  118. *
  119. iniFindContext(iniFile,ContextName,Flags)(A0/A1,D0)
  120. iniFindItem(ContextStr,ContextItemName,Flags)(A0/A1,D0)
  121. ##end
  122.