home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / flist.zip / list.h < prev    next >
Text File  |  1996-09-09  |  2KB  |  49 lines

  1. #ifndef INCL_LIST
  2.  #define INCL_LIST
  3.  
  4.  #define EXTFUNC
  5.  
  6.  typedef struct _LPELEM {
  7.    PVOID  data;
  8.    ULONG  userdata;
  9.    struct _LPELEM *next;
  10.    struct _LPELEM *prev;
  11.    struct _LPELEM *nextmk;
  12.  } LPELEM;
  13.  
  14.  typedef LPELEM LPLIST;
  15.  
  16.  typedef struct {
  17.    USHORT  lines;
  18.    USHORT  mklines;
  19.    USHORT  maxlines;
  20.    USHORT  maxlen;
  21.    LPELEM *lastmk;
  22.    HMTX    lock;
  23.  } LPINFO;
  24.  
  25.  LPELEM * EXTFUNC LPListCreate( void );
  26.  BOOL     EXTFUNC LPListDestroy( LPLIST * );
  27.  BOOL     EXTFUNC LPListClear( LPLIST * );
  28.  BOOL     EXTFUNC LPListClearMarked( LPLIST * );
  29.  LPELEM * EXTFUNC LPElemCreate( void );
  30.  BOOL     EXTFUNC LPElemDestroy( LPELEM * );
  31.  BOOL     EXTFUNC LPElemAppend( LPLIST *, LPELEM * );
  32.  BOOL     EXTFUNC LPElemInsert( LPLIST *, LPELEM *, LPELEM * );
  33.  BOOL     EXTFUNC LPElemDelete( LPLIST *, LPELEM * );
  34.  BOOL     EXTFUNC LPElemRemove( LPLIST *, LPELEM * );
  35.  BOOL     EXTFUNC LPElemSetData( LPLIST *, LPELEM *, char *, USHORT );
  36.  BOOL     EXTFUNC LPElemExchange( LPLIST *, LPELEM *, LPELEM * );
  37.  LPELEM * EXTFUNC LPElemTrack( LPLIST *, LPELEM *, int );
  38.  LPELEM * EXTFUNC LPElemRotate( LPLIST *, LPELEM *, int );
  39.  BOOL     EXTFUNC LPElemMark( LPLIST *, LPELEM * );
  40.  BOOL     EXTFUNC LPElemUnmark( LPLIST *, LPELEM * );
  41.  
  42.  #define LPListLines( LIST )        ( ( ( LPINFO * )( LIST->data ) )->lines )
  43.  #define LPListMarkedLines( LIST )  ( ( ( LPINFO * )( LIST->data ) )->mklines )
  44.  #define LPListMaxLines( LIST )     ( ( ( LPINFO * )( LIST->data ) )->maxlines )
  45.  #define LPListMaxLen( LIST )       ( ( ( LPINFO * )( LIST->data ) )->maxlen )
  46.  #define LPListLock( LIST )         ( ( ( LPINFO * )( LIST->data ) )->lock )
  47.  
  48. #endif
  49.