# 2.11BSD#431 - /usr/src/new/notes/src/next.c

##### Functions

    inorder           X
    nxtnote           X
    nxtresp           X

       1: #include "parms.h"
       2: #include "structs.h"
       3:
       4: #ifdef  RCSIDENT
       5: static char rcsid[] = "$Header: next.c,v 1.7 85/01/18 15:23:59 notes Rel $";
       6: #endif	RCSIDENT
       7:
       8: /*
       9:  *	next.c -	find the next note/response after a certain time
      10:  *
      11:  *	nxtnote(io, note,date)
      12:  *		finds the next note whith number > note which has been
      13:  *	modified after date. If none exists, a -1 is returned, otherwise
      14:  *	the note number is returned.
      15:  *
      16:  *	nxtresp(io,note,resp,date)
      17:  *		same idea as above, except, we look through the responses
      18:  *	after resp to note # note. If there is no response, we return
      19:  *	a -1, else we return the response number.
      20:  *
      21:  *	inorder(date1, date2) struct when_f *date1, *date2)
      22:  *		return 1 if date1 before date2, otherwise return 0.
      23:  *
      24:  *	Original coding:	Ray Essick	november 1981
      25:  */
      26:
      27: nxtnote (io, note, date)
      28: struct io_f *io;
      29: struct when_f  *date;
      30: {
      31:     struct note_f   znote;
      32:     if (note < 0)
      33:     note = 0;                   /* start at beginning */
      34:
      35:     note++;                     /* find starts with next note ! */
      36:     while (note <= io -> descr.d_nnote)
      37:     {
      38:     getnrec (io, note, &znote);         /* get note header */
      39:     if (znote.n_stat & DELETED)
      40:     {
      41:         note++;                 /* go on to the next note */
      42:         continue;                   /* try the next note */
      43:     }
      44:     if (inorder (&znote.n_lmod, date) == 0)     /* want eqauls to show */
      45:         return note;                /* modified after date */
      46:     note++;                     /* go try the next note */
      47:     }
      48:     return (-1);                    /* no deal, wasn't a more recent note */
      49: }
      50:
      51: nxtresp (io, note, resp, date)
      52: struct io_f *io;
      53: struct when_f  *date;
      54: {
      55:     struct note_f   znote;
      56:     struct resp_f   rrec;
      57:     int     poffset,
      58:             recnum;
      59:
      60:     getnrec (io, note, &znote);
      61:     if (resp < 0)
      62:     resp = 0;                   /* can't look at negative response */
      63:     resp++;                     /* start search at next response */
      64:     while (resp <= znote.n_nresp)
      65:     {
      66:     if (lrsp (io, note, resp, &rrec, &poffset, &recnum) == -1)
      67:         break;                  /* no response, drop out */
      68:     if (inorder (&rrec.r_rcvd[poffset], date) == 0)
      69:         return resp;                /* return if date earlier or same */
      70:     resp++;
      71:     }
      72:     return (-1);                    /* no later responses to this note */
      73: }
      74:
      75: /*
      76:  *	see if the time specified by "d1" is before "d2".
      77:  *	this is a STRICT test.  if d1 == d2, they are not
      78:  *	in order.
      79:  */
      80: inorder (d1, d2)
      81: struct when_f  *d1,
      82:                *d2;
      83: {
      84:     if (d1 -> w_gmttime && d2 -> w_gmttime)     /* if both there */
      85:     return (d1 -> w_gmttime < d2 -> w_gmttime); /* relationship */
      86:     if (d1 -> w_year < d2 -> w_year)
      87:     return 1;
      88:     if (d1 -> w_year > d2 -> w_year)
      89:     return 0;
      90:
      91:     if (d1 -> w_month < d2 -> w_month)
      92:     return 1;
      93:     if (d1 -> w_month > d2 -> w_month)
      94:     return 0;
      95:
      96:     if (d1 -> w_day < d2 -> w_day)
      97:     return 1;
      98:     if (d1 -> w_day > d2 -> w_day)
      99:     return 0;
     100:
     101:     if (d1 -> w_hours < d2 -> w_hours)
     102:     return 1;
     103:     if (d1 -> w_hours > d2 -> w_hours)
     104:     return 0;
     105:
     106:     if (d1 -> w_mins < d2 -> w_mins)
     107:     return 1;
     108:     if (d1 -> w_mins > d2 -> w_mins)
     109:     return 0;
     110:
     111:     return 0;                       /* equal dates are not in order */
     112: }

#### Defined functions

inorder defined in line 80; used 17 times

- in line 44, 68
- in /usr/src/new/notes/src/archiver.c line 331
- in /usr/src/new/notes/src/checknotes.c line 68, 86
- in /usr/src/new/notes/src/control.c line 63, 132
- in /usr/src/new/notes/src/newsout.c line 67, 91, 110
- in /usr/src/new/notes/src/nfsend.c line 82, 119, 146
- in /usr/src/new/notes/src/readem.c line 146, 164, 212, 242

nxtnote defined in line 27; used 6 times

- in /usr/src/new/notes/src/control.c line 155
- in /usr/src/new/notes/src/index.c line 233-237(2)
- in /usr/src/new/notes/src/newsout.c line 106
- in /usr/src/new/notes/src/nfsend.c line 139
- in /usr/src/new/notes/src/readem.c line 866

nxtresp defined in line 51; used 3 times

- in /usr/src/new/notes/src/newsout.c line 137
- in /usr/src/new/notes/src/nfsend.c line 164
- in /usr/src/new/notes/src/readem.c line 855

#### Defined variables

rcsid defined in line 5; never used

Last modified: 1985-01-19 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 681 |