Initial snark14m import
[snark14.git] / src / snark / wrdpack.cpp
1 /*
2  ***********************************************************
3  $SNARK_Header: S N A R K  1 4 - A PICTURE RECONSTRUCTION PROGRAM $
4  $HeadURL: svn://dig.cs.gc.cuny.edu/snark/trunk/src/snark/wrdpack.cpp $
5  $LastChangedRevision: 122 $
6  $Date: 2014-07-09 18:18:59 -0400 (Wed, 09 Jul 2014) $
7  $Author: agulati $
8  ***********************************************************
9
10  wrdpack.cpp,v 1.2 2008/08/25 16:11:09 jklukowska Exp
11
12  THE PURPOSE OF THIS ROUTINE IS TO PACK FOUR CHARACTERS (STORED ONE
13  PER WORD STARTING WITH indata(ptr)) INTO A SINGLE WORD word SO THAT
14  SIMPLE INTEGER COMPARISONS CAN BE MADE.
15
16  ON RETURN, THE POINTER ptr POINTS TO THE NEXT CHARACTER FOLLOWING THE 
17  LAST ONE PACKED.
18  IF THE NEXT CHARACTER IS BLANK, THEN wrdpack IS SET TO .true. . IF
19  THE NEXT CHARACTER IS NON BLANK, THEN wrdpack IS SET TO .false. 
20
21 */
22
23 #include <cstdio>
24       
25 #include "blkdta.h"
26 #include <ctype.h>  // added by lajos, Nov 18, 2004
27
28 #include "wrdpack.h"
29       
30 BOOLEAN wrdpack(CHAR* indata, INTEGER* ptr, INTEGER* word)
31 {
32       
33   CHAR list[4];
34   CHAR blank = ' ';
35
36   int i;
37
38   for(i = 1; i < 4; i++) 
39   {
40     list[i] = blank;
41   }
42
43   for(i = 0; i < 4; i++) 
44   {
45     list[i] = tolower(indata[*ptr]);  // changed "tolowr" to "tolower". lajos, Nov 18, 2004
46     if(list[i] == blank) break;
47     (*ptr)++;
48   }
49   
50   *word = CHAR2INT((*list), *(list+1), *(list+2), *(list+3));
51
52   if(indata[*ptr] == blank) return TRUE;
53   return FALSE;
54 }