*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include <config.h>
(a), (b) > 0 ? '+' : '-', \
(b) > 0 ? (b) : -(b), (c)
-/*
- * Draw rules with some sort of antialias support. Usefult for high-rate
- * scale factors.
- */
-
static void draw_shrink_rule (DviContext *dvi, int x, int y, Uint w, Uint h, int f)
{
- int hs, vs, npixels;
Ulong fg, bg;
- Ulong *pixels;
-
- hs = dvi->params.hshrink;
- vs = dvi->params.vshrink;
+
fg = dvi->curr_fg;
bg = dvi->curr_bg;
- if (MDVI_ENABLED(dvi, MDVI_PARAM_ANTIALIASED)) {
- npixels = vs * hs + 1;
- pixels = get_color_table(&dvi->device, npixels, bg, fg,
- dvi->params.gamma, dvi->params.density);
-
- if (pixels) {
- int color;
-
- /* Lines with width 1 should be perfectly visible
- * in shrink about 15. That is the reason of constant
- */
-
- color = (pow (vs / h * hs, 2) + pow (hs / w * vs, 2)) / 225;
- if (color < npixels) {
- fg = pixels[color];
- } else {
- fg = pixels[npixels - 1];
- }
- }
- }
-
mdvi_push_color (dvi, fg, bg);
dvi->device.draw_rule(dvi, x, y, w, h, f);
mdvi_pop_color (dvi);
Int32 arg;
arg = dugetn(dvi, opcode - DVI_XXX1 + 1);
+ if (arg <= 0) {
+ dvierr(dvi, _("malformed special length\n"));
+ return -1;
+ }
s = mdvi_malloc(arg + 1);
dread(dvi, s, arg);
s[arg] = 0;