149{
150 uchar abyHeader[100] = { 0 };
151 int i;
153 double dValue;
155
157 {
158 psSHP->
sHooks.
Error(
"SHPWriteHeader failed : SHX file is closed");
159 return;
160 }
161
162
163
164
165
166 abyHeader[2] = 0x27;
167 abyHeader[3] = 0x0a;
168
172
173 i32 = 1000;
176
180
182 ByteCopy( &dValue, abyHeader+36, 8 );
184
186 ByteCopy( &dValue, abyHeader+44, 8 );
188
190 ByteCopy( &dValue, abyHeader+52, 8 );
192
194 ByteCopy( &dValue, abyHeader+60, 8 );
196
198 ByteCopy( &dValue, abyHeader+68, 8 );
200
202 ByteCopy( &dValue, abyHeader+76, 8 );
204
206 ByteCopy( &dValue, abyHeader+84, 8 );
208
210 ByteCopy( &dValue, abyHeader+92, 8 );
212
213
214
215
218 {
219 char szErrorMsg[200];
220
221 snprintf( szErrorMsg, sizeof(szErrorMsg),
222 "Failure writing .shp header: %s", strerror(errno) );
223 szErrorMsg[sizeof(szErrorMsg)-1] = '\0';
225 return;
226 }
227
228
229
230
234
237 {
238 char szErrorMsg[200];
239
240 snprintf( szErrorMsg, sizeof(szErrorMsg),
241 "Failure writing .shx header: %s", strerror(errno) );
242 szErrorMsg[sizeof(szErrorMsg)-1] = '\0';
244
245 return;
246 }
247
248
249
250
253 {
254 psSHP->
sHooks.
Error(
"Failure allocating panSHX" );
255 return;
256 }
257
258 for( i = 0; i < psSHP->
nRecords; i++ )
259 {
264 }
265
268 {
269 char szErrorMsg[200];
270
271 snprintf( szErrorMsg, sizeof(szErrorMsg),
272 "Failure writing .shx contents: %s", strerror(errno) );
273 szErrorMsg[sizeof(szErrorMsg)-1] = '\0';
275 }
276
278
279
280
281
284}
static void SwapWord(int length, void *wordP)
#define STATIC_CAST(type, x)
#define ByteCopy(a, b, c)
void(* Error)(const char *message)
int(* FFlush)(SAFile file)
SAOffset(* FWrite)(void *p, SAOffset size, SAOffset nmemb, SAFile file)
SAOffset(* FSeek)(SAFile file, SAOffset offset, int whence)
unsigned int * panRecSize
unsigned int * panRecOffset