~ubuntu-branches/ubuntu/dapper/poppler/dapper-security

« back to all changes in this revision

Viewing changes to splash/SplashFontEngine.cc

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2006-03-06 18:42:44 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20060306184244-oomqyiqr7cgncp2c
Tags: 0.5.1-0ubuntu1
* New upstream version:
  - Support for embedded files.
  - Handle 0-width lines correctly.
  - Avoid external file use when opening fonts.
  - Only use vector fonts returned from fontconfig (#5758).
  - Fix scaled 1x1 pixmaps use for drawing lines (#3387).
  - drawSoftMaskedImage support in cairo backend.
  - Misc bug fixes: #5922, #5946, #5749, #5952, #4030, #5420.
* debian/control.in, debian/libpoppler0c2.dirs, 
  debian/libpoppler0c2-glib.dirs, debian/libpoppler0c2-glib.install,
  debian/libpoppler0c2.install, debian/libpoppler0c2-qt.dirs,
  debian/libpoppler0c2-qt.install, debian/rules:
  - updated for the soname change
* debian/patches/000_splash_build_fix.patch:
  - fix build when using splash
* debian/patches/001_fixes_for_fonts_selection.patch:
  - fix with the new version

Show diffs side-by-side

added added

removed removed

Lines of Context:
105
105
}
106
106
 
107
107
SplashFontFile *SplashFontEngine::loadType1Font(SplashFontFileID *idA,
108
 
                                                char *fileName,
109
 
                                                GBool deleteFile, char **enc) {
 
108
                                                SplashFontSrc *src,
 
109
                                                char **enc) {
110
110
  SplashFontFile *fontFile;
111
111
 
112
112
  fontFile = NULL;
113
113
#if HAVE_T1LIB_H
114
114
  if (!fontFile && t1Engine) {
115
 
    fontFile = t1Engine->loadType1Font(idA, fileName, deleteFile, enc);
 
115
    fontFile = t1Engine->loadType1Font(idA, src, enc);
116
116
  }
117
117
#endif
118
118
#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
119
119
  if (!fontFile && ftEngine) {
120
 
    fontFile = ftEngine->loadType1Font(idA, fileName, deleteFile, enc);
 
120
    fontFile = ftEngine->loadType1Font(idA, src, enc);
121
121
  }
122
122
#endif
123
123
 
126
126
  // semantics, this will remove the last link; otherwise it will
127
127
  // return an error, leaving the file to be deleted later (if
128
128
  // loadXYZFont failed, the file will always be deleted)
129
 
  if (deleteFile) {
130
 
    unlink(fontFile ? fontFile->fileName->getCString() : fileName);
131
 
  }
 
129
  src->unref();
132
130
#endif
133
131
 
134
132
  return fontFile;
135
133
}
136
134
 
137
135
SplashFontFile *SplashFontEngine::loadType1CFont(SplashFontFileID *idA,
138
 
                                                 char *fileName,
139
 
                                                 GBool deleteFile,
 
136
                                                 SplashFontSrc *src,
140
137
                                                 char **enc) {
141
138
  SplashFontFile *fontFile;
142
139
 
143
140
  fontFile = NULL;
144
141
#if HAVE_T1LIB_H
145
142
  if (!fontFile && t1Engine) {
146
 
    fontFile = t1Engine->loadType1CFont(idA, fileName, deleteFile, enc);
 
143
    fontFile = t1Engine->loadType1CFont(idA, src, enc);
147
144
  }
148
145
#endif
149
146
#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
150
147
  if (!fontFile && ftEngine) {
151
 
    fontFile = ftEngine->loadType1CFont(idA, fileName, deleteFile, enc);
 
148
    fontFile = ftEngine->loadType1CFont(idA, src, enc);
152
149
  }
153
150
#endif
154
151
 
157
154
  // semantics, this will remove the last link; otherwise it will
158
155
  // return an error, leaving the file to be deleted later (if
159
156
  // loadXYZFont failed, the file will always be deleted)
160
 
  if (deleteFile) {
161
 
    unlink(fontFile ? fontFile->fileName->getCString() : fileName);
162
 
  }
 
157
  src->unref();
163
158
#endif
164
159
 
165
160
  return fontFile;
166
161
}
167
162
 
168
163
SplashFontFile *SplashFontEngine::loadCIDFont(SplashFontFileID *idA,
169
 
                                              char *fileName,
170
 
                                              GBool deleteFile) {
 
164
                                              SplashFontSrc *src) {
171
165
  SplashFontFile *fontFile;
172
166
 
173
167
  fontFile = NULL;
174
168
#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
175
169
  if (!fontFile && ftEngine) {
176
 
    fontFile = ftEngine->loadCIDFont(idA, fileName, deleteFile);
 
170
    fontFile = ftEngine->loadCIDFont(idA, src);
177
171
  }
178
172
#endif
179
173
 
182
176
  // semantics, this will remove the last link; otherwise it will
183
177
  // return an error, leaving the file to be deleted later (if
184
178
  // loadXYZFont failed, the file will always be deleted)
185
 
  if (deleteFile) {
186
 
    unlink(fontFile ? fontFile->fileName->getCString() : fileName);
187
 
  }
 
179
  src->unref();
188
180
#endif
189
181
 
190
182
  return fontFile;
191
183
}
192
184
 
193
185
SplashFontFile *SplashFontEngine::loadTrueTypeFont(SplashFontFileID *idA,
194
 
                                                   char *fileName,
195
 
                                                   GBool deleteFile,
 
186
                                                   SplashFontSrc *src,
196
187
                                                   Gushort *codeToGID,
197
 
                                                   int codeToGIDLen) {
 
188
                                                   int codeToGIDLen,
 
189
                                                   int faceIndex) {
198
190
  SplashFontFile *fontFile;
199
191
 
200
192
  fontFile = NULL;
201
193
#if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H
202
194
  if (!fontFile && ftEngine) {
203
 
    fontFile = ftEngine->loadTrueTypeFont(idA, fileName, deleteFile,
204
 
                                          codeToGID, codeToGIDLen);
 
195
    fontFile = ftEngine->loadTrueTypeFont(idA, src,
 
196
                                        codeToGID, codeToGIDLen, faceIndex);
205
197
  }
206
198
#endif
207
199
 
214
206
  // semantics, this will remove the last link; otherwise it will
215
207
  // return an error, leaving the file to be deleted later (if
216
208
  // loadXYZFont failed, the file will always be deleted)
217
 
  if (deleteFile) {
218
 
    unlink(fontFile ? fontFile->fileName->getCString() : fileName);
219
 
  }
 
209
  src->unref();
220
210
#endif
221
211
 
222
212
  return fontFile;