home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / CSAPE32.ARJ / INCLUDE / TEDDECL.H < prev    next >
C/C++ Source or Header  |  1990-05-02  |  6KB  |  167 lines

  1. /*
  2.     teddecl.h  4/2/88 jdc
  3.  
  4.     % public header for textbuffer editting
  5.  
  6.     C-scape 3.2
  7.     Copyright (c) 1988 by Oakland Group, Inc.
  8.     ALL RIGHTS RESERVED.
  9.  
  10.     Revision History:
  11.     -----------------
  12.      9/15/87 jmd     added _arg, extern
  13.     11/28/88 jmd    reorganized headers, added sed_GetCRow, sed_GetCCol.
  14.  
  15.      2/02/89 jdc    fixed move_method typedef
  16.      3/31/89 jmd    Cleaned up some macros
  17.      7/15/89 ted    Converted '_func' prototypes from typedef to macro.
  18.  
  19.     12/19/89 jmdc    added ted insensitive search
  20.      1/21/90 jdc    added ted_StripWhiteSpace
  21.      2/23/90 jmd    made ted_UpChar, etc. into macros
  22.      3/28/90 jmd    ansi-fied
  23.      5/02/90 jdc    added return values to PageUp, PageDown and GoBottom
  24. */
  25.  
  26. #define TED_BACKWARD    0x00
  27. #define TED_FORWARD        0x01
  28. #define TED_AFTER        0x02
  29. #define TED_BEFORE        0x04
  30. #define TED_INSENSITIVE    0x08
  31.  
  32. #define TED_NOMATCH        0
  33. #define TED_MATCH        1
  34. #define TED_MORE        2
  35.  
  36. #define TED_NOREFRESH    0
  37. #define TED_REFRESH        1
  38.  
  39. #define TED_NOTABJUMP    0
  40. #define TED_TABJUMP        1
  41.  
  42. #define TED_HARD        0
  43. #define TED_SOFT        1
  44. #define TED_LEN            2
  45.  
  46. #define B_CUT            1
  47. #define B_COPY            2
  48. #define B_ATTR            4
  49. #define B_PAD            8
  50.  
  51. /* ted_funcs, (FNTED.C) */
  52. OEXTERN field_funcs_struct ted_funcs;
  53.  
  54. extern void     ted_fenter(sed_type sed);
  55. extern void     ted_fkey(sed_type sed);
  56. extern void     ted_senter(sed_type sed, int fieldno);
  57. extern void     ted_sexit(sed_type sed, int fieldno);
  58.  
  59. /* move methods */
  60. /* TEDFOLL.C */
  61. extern move_func (ted_Follow);
  62.  
  63. /* TEDPAST.C */
  64. extern move_func (ted_Past);
  65.  
  66. /*    character and cursor movement functions */
  67. /* TEDIT.C */
  68. extern boolean  ted_AddChar(sed_type sed, char c);
  69. extern boolean  ted_AddString(sed_type sed, char *s, unsigned len);
  70. extern char     ted_DeleteString(sed_type sed, int row, int col, unsigned len);
  71. extern void     ted_StartWorking(sed_type sed);
  72. extern boolean  ted_MoveChar(sed_type sed, int r, int c, int tab_mode);
  73. extern void     ted_GetPosition(sed_type sed, int *row, int *col);
  74. extern boolean  ted_GoEnd(sed_type sed);
  75. extern boolean    ted_PageUp(sed_type sed);
  76. extern boolean    ted_PageDown(sed_type sed);
  77. extern boolean    ted_GoBottom(sed_type sed);
  78. extern boolean  ted_Scroll(sed_type sed);
  79. extern void     ted_SetCursor(sed_type sed, int row, int col);
  80. extern void     ted_reset(sed_type sed, int i, int mode);
  81.  
  82. /* TEDGSTR.C */
  83. extern unsigned ted_GetString(sed_type sed, char *buf, unsigned len);
  84.  
  85. /* TEDWORD.C */
  86. extern boolean  ted_FindWord(sed_type sed, int mode);
  87.  
  88. /* TEDSRCH.C */
  89. extern boolean  ted_Search(sed_type sed, char *pattern, int mode);
  90.  
  91. /* TEDCURS.C */
  92. extern long     ted_GetCursor(sed_type sed);
  93. extern boolean  ted_GotoCursor(sed_type sed, long cursor);
  94.  
  95.  
  96. /* TEDCOPY.C */
  97. extern int      ted_GetMark(sed_type sed);
  98. extern void     ted_SetMark(sed_type sed, int mode);
  99. extern boolean  ted_copy(sed_type sed, menu_type cmenu, byte attr, int mode);
  100. extern boolean  ted_insert(sed_type sed, menu_type cmenu);
  101.  
  102. /* TEDFILE.C */
  103. extern long ted_ReadFile(sed_type sed, FILE *fp);
  104. extern long ted_WriteFile(sed_type sed, FILE *fp, int mode);
  105.  
  106. /* TEDLINE.C */
  107. extern int      ted_line(sed_type sed, int mode);
  108.  
  109. /* TEDSTRIP.C */
  110. extern boolean  ted_StripWhiteSpace(sed_type sed);
  111.  
  112. /* TEDSETMV.C */
  113. extern void     ted_SetMoveMethod(sed_type sed, move_method mm);
  114.  
  115. /** Macros **/
  116.  
  117. #define    sed_GetCRow(sed)        ((sed_getxd(sed))->row)
  118. #define sed_GetCCol(sed)        ((sed_getxd(sed))->col)
  119.  
  120. #define ted_GotoPosition(sed, row, col)  (*((sed_getxd(sed))->move))(sed, row, col)
  121.  
  122. #define ted_AddRow(sed)            ted_AddChar(sed, '\n')
  123. #define ted_UpChar(sed)         ted_MoveChar(sed, -1, 0, TED_NOTABJUMP)
  124. #define ted_DownChar(sed)        ted_MoveChar(sed, 1, 0, TED_NOTABJUMP)
  125. #define ted_LeftChar(sed, t)    ted_MoveChar(sed, 0, -1, t)
  126. #define ted_RightChar(sed, t)    ted_MoveChar(sed, 0, 1, t)
  127. #define ted_GoHome(sed)            ted_GotoPosition(sed, sed_GetCRow(sed), 0)
  128. #define ted_GoTop(sed)            ted_GotoPosition(sed, 0, 0)
  129. #define ted_LeftWord(sed)        ted_FindWord(sed, TED_BACKWARD)
  130. #define ted_RightWord(sed)        ted_FindWord(sed, TED_FORWARD)
  131.  
  132. #define ted_DeleteChar(sed)     ted_DeleteString(sed, sed_GetCRow(sed), sed_GetCCol(sed), 1)
  133.  
  134. /*    buf is expected to be a menu_type */
  135. #define ted_BlockCut(sed, buf)        ted_copy(sed, buf, 0x00, B_CUT + B_COPY)
  136. #define ted_BlockCopy(sed, buf)        ted_copy(sed, buf, 0x00, B_COPY)
  137. #define ted_BlockCopyPad(sed, buf)    ted_copy(sed, buf, 0x00, B_PAD + B_COPY)
  138. #define ted_BlockDelete(sed)        ted_copy(sed, NULL, 0x00, B_CUT)
  139. #define ted_BlockAttr(sed, attr)       ted_copy(sed, NULL, attr, B_ATTR)
  140. #define ted_BlockPaste(sed, buf)    ted_insert(sed, buf)
  141.  
  142. #define    ted_GetWrapWidth(sed)          ((sed_GetMenu(sed))->textbuf->width)
  143. #define    ted_SetWrapWidth(sed, w)      ted_reset(sed, w, 0)
  144. #define    ted_GetTabSize(sed)          ((sed_GetMenu(sed))->textbuf->tab_size)
  145. #define    ted_SetTabSize(sed, t)      ted_reset(sed, t, 1)
  146.  
  147. #define ted_GetRefresh(sed)            ((sed_GetMenu(sed))->textbuf->refresh)
  148. #define ted_SetRefresh(sed, mode)    ((sed_GetMenu(sed))->textbuf->refresh = (mode))
  149. #define ted_GetInsert(sed)            ((sed_GetMenu(sed))->textbuf->insert)
  150. #define ted_SetInsert(sed, mode)    ((sed_GetMenu(sed))->textbuf->insert = (mode))
  151. #define ted_GetTabChar(sed)             ((sed_GetMenu(sed))->textbuf->tab_char)
  152. #define ted_SetTabChar(sed, chr)     ((sed_GetMenu(sed))->textbuf->tab_char = (chr))
  153. #define ted_GetNewLineChar(sed)     ((sed_GetMenu(sed))->textbuf->newline_char)
  154. #define ted_SetNewLineChar(sed, chr)    ((sed_GetMenu(sed))->textbuf->newline_char = (chr))
  155.  
  156. #define ted_GetMaxSize(sed)         (((sed_GetMenu(sed))->textbuf->limit ) ? (sed_GetMenu(sed))->textbuf->max_size : 0L)
  157. #define ted_SetMaxSize(sed, size)      tb_SetMaxSize((sed_GetMenu(sed))->textbuf, size)
  158. #define ted_GetSize(sed)             tb_GetSize((sed_GetMenu(sed))->textbuf)
  159. #define ted_GetMoveMethod(sed)         ((sed_getxd(sed))->move)
  160. #define ted_GetLineLen(sed)            ted_line(sed, TED_LEN)
  161. #define ted_IsHardLine(sed)            ted_line(sed, TED_HARD)
  162.  
  163. #define is_whitespace(c)  ((c == ' ' || c == '\t' || c == '\n') ? 1 : 0)
  164.  
  165.  
  166.  
  167.