6 * map page numbers to file position
10 #include <X11/IntrinsicP.h>
11 #include <X11/StringDefs.h>
21 MapPageNumberToFileMap (DviWidget dw
, int number
)
25 for (m
= dw
->dvi
.file_map
; m
; m
=m
->next
)
26 if (m
->page_number
== number
)
32 DestroyFileMap (DviFileMap
*m
)
43 ForgetPagePositions (DviWidget dw
)
45 DestroyFileMap (dw
->dvi
.file_map
);
50 RememberPagePosition(DviWidget dw
, int number
)
54 if (!(m
= MapPageNumberToFileMap (dw
, number
))) {
55 m
= (DviFileMap
*) XtMalloc (sizeof *m
);
56 m
->page_number
= number
;
57 m
->next
= dw
->dvi
.file_map
;
61 m
->position
= ftell (dw
->dvi
.tmpFile
);
63 m
->position
= ftell (dw
->dvi
.file
);
67 SearchPagePosition (DviWidget dw
, int number
)
71 if (!(m
= MapPageNumberToFileMap (dw
, number
)))
77 FileSeek(DviWidget dw
, long position
)
79 if (dw
->dvi
.tmpFile
) {
80 dw
->dvi
.readingTmp
= 1;
81 fseek (dw
->dvi
.tmpFile
, position
, 0);
83 fseek (dw
->dvi
.file
, position
, 0);