imcutils.pp 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. {$MACRO ON}
  2. (******************************************************************************
  3. *
  4. * Copyright (c) 1997-2000 Palm, Inc. or its subsidiaries.
  5. * All rights reserved.
  6. *
  7. * File: IMCUtils.h
  8. *
  9. * Release: Palm OS SDK 4.0 (63220)
  10. *
  11. * Description:
  12. * Routines to handle Internet Mail Consortium specs
  13. *
  14. * History:
  15. * 8/6/97 roger - Created
  16. *
  17. **************************************************************************)
  18. unit imcutils;
  19. interface
  20. uses palmos, coretraps;
  21. const
  22. EOF = $ffff;
  23. // Constants for some common IMC spec values.
  24. parameterDelimeterChr = ';';
  25. valueDelimeterChr = ':';
  26. groupDelimeterChr = '.';
  27. paramaterNameDelimiterChr = '=';
  28. endOfLineChr = $0D;
  29. imcLineSeparatorString = '\015\012';
  30. imcFilenameLength = 32;
  31. imcUnlimitedChars = $FFFE; // 64K, minus 1 character for null
  32. // These are for functions called to handle input and output. These are currently used
  33. // to allow disk based or obx based transfers
  34. type
  35. GetCharF = function(const p: Pointer): UInt16;
  36. PutStringF = procedure(p: Pointer; const stringP: PChar);
  37. // maxChars does NOT include trailing null, buffer may be 1 larger.
  38. // use imcUnlimitedChars if you don't want a max.
  39. function ImcReadFieldNoSemicolon(inputStream: Pointer; inputFunc: GetCharF; var c: UInt16;
  40. const maxChars: UInt16): PChar; syscall sysTrapImcReadFieldNoSemicolon;
  41. // maxChars does NOT include trailing null, buffer may be 1 larger.
  42. // use imcUnlimitedChars if you don't want a max.
  43. function ImcReadFieldQuotablePrintable(inputStream: Pointer; inputFunc: GetCharF; var c: UInt16;
  44. const stopAt: Char; const quotedPrintable: Boolean; const maxChars: UInt16): PChar; syscall sysTrapImcReadFieldQuotablePrintable;
  45. procedure ImcReadPropertyParameter(inputStream: Pointer; inputFunc: GetCharF; var cP: UInt16;
  46. nameP, valueP: PChar); syscall sysTrapImcReadPropertyParameter;
  47. procedure ImcSkipAllPropertyParameters(inputStream: Pointer; inputFunc: GetCharF; var cP: UInt16;
  48. identifierP: PChar; var quotedPrintableP: Boolean); syscall sysTrapImcSkipAllPropertyParameters;
  49. procedure ImcReadWhiteSpace(inputStream: Pointer; inputFunc: GetCharF; var c, charAttrP: UInt16); syscall sysTrapImcReadWhiteSpace;
  50. procedure ImcWriteQuotedPrintable(outputStream: Pointer; outputFunc: PutStringF;
  51. const stringP: PChar; const noSemicolons: Boolean); syscall sysTrapImcWriteQuotedPrintable;
  52. procedure ImcWriteNoSemicolon(outputStream: Pointer; outputFunc: PutStringF; const stringP: PChar); syscall sysTrapImcWriteNoSemicolon;
  53. function ImcStringIsAscii(const stringP: PChar): Boolean; syscall sysTrapImcStringIsAscii;
  54. implementation
  55. end.