freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ft-devel] Re: Project Files for VC++.net 2003


From: Werner LEMBERG
Subject: [ft-devel] Re: Project Files for VC++.net 2003
Date: Mon, 16 May 2005 10:32:08 +0200 (CEST)

> I send new project files for VC++ NET 2003: Fix compiler options for
> 'Release' versions - exclude debug info and reducing library size.

Thanks, added.  Any progress with the `otvalid' module?  Attached you
can find a sed script which expands the OTV_NEST* macros -- this is an
intermediate solution.  Please test whether it works.  I've also
contacted someone at Microsoft with the hope that he can provide a
definite answer.


   Werner
# fix-prescan.sed
#
# Copyright (C) 2005 by Werner Lemberg
#
# Some compilers (most notably VC++.net 2003) don't support argument prescan
# properly.  This script expands the OTV_NESTx macro calls to OTV_NESTx_ to
# circumvent this problem.
#
# Currently, the following files in src/otvalid use those macros:
#
#   otvgdef.c
#   otvgpos.c
#   otvgsub.c
#   otvjstf.c
#
# Example call:
#
#   mv otvgdef.c otvgdef.c.orig
#   sed -f fix-prescan.sed < otvgdef.c.orig > otvgdef.c

/^#\|"/!{

  s/OTV_NEST\(.\)/OTV_NEST\1_/

  # otvcommn.h

  s/\bChainPosClassSet\b/otv_x_Ox, "ChainPosClassSet"/
  s/\bChainPosRuleSet\b/otv_x_Ox, "ChainPosRuleSet"/
  s/\bChainSubClassSet\b/otv_x_Ox, "ChainSubClassSet"/
  s/\bChainSubRuleSet\b/otv_x_Ox, "ChainSubRuleSet"/
  s/\bJstfLangSys\b/otv_x_Ox, "JstfLangSys"/
  s/\bJstfMax\b/otv_x_Ox, "JstfMax"/
  s/\bLigGlyph\b/otv_x_Ox, "LigGlyph"/
  s/\bLigatureArray\b/otv_x_Ox, "LigatureArray"/
  s/\bLigatureSet\b/otv_x_Ox, "LigatureSet"/
  s/\bPosClassSet\b/otv_x_Ox, "PosClassSet"/
  s/\bPosRuleSet\b/otv_x_Ox, "PosRuleSet"/
  s/\bSubClassSet\b/otv_x_Ox, "SubClassSet"/
  s/\bSubRuleSet\b/otv_x_Ox, "SubRuleSet"/

  s/\bAlternateSubstFormat1\b/otv_u_C_x_Ox, "AlternateSubstFormat1"/
  s/\bChainContextPosFormat1\b/otv_u_C_x_Ox, "ChainContextPosFormat1"/
  s/\bChainContextSubstFormat1\b/otv_u_C_x_Ox, "ChainContextSubstFormat1"/
  s/\bContextPosFormat1\b/otv_u_C_x_Ox, "ContextPosFormat1"/
  s/\bContextSubstFormat1\b/otv_u_C_x_Ox, "ContextSubstFormat1"/
  s/\bLigatureSubstFormat1\b/otv_u_C_x_Ox, "LigatureSubstFormat1"/
  s/\bMultipleSubstFormat1\b/otv_u_C_x_Ox, "MultipleSubstFormat1"/

  s/\bAlternateSet\b/otv_x_ux, "AlternateSet"/
  s/\bAttachPoint\b/otv_x_ux, "AttachPoint"/
  s/\bExtenderGlyph\b/otv_x_ux, "ExtenderGlyph"/
  s/\bJstfGPOSModList\b/otv_x_ux, "JstfGPOSModList"/
  s/\bJstfGSUBModList\b/otv_x_ux, "JstfGSUBModList"/
  s/\bSequence\b/otv_x_ux, "Sequence"/

  s/\bPosClassRule\b/otv_x_y_ux_sy, "PosClassRule"/
  s/\bPosRule\b/otv_x_y_ux_sy, "PosRule"/
  s/\bSubClassRule\b/otv_x_y_ux_sy, "SubClassRule"/
  s/\bSubRule\b/otv_x_y_ux_sy, "SubRule"/

  s/\bChainPosClassRule\b/otv_x_ux_y_uy_z_uz_p_sp, "ChainPosClassRule"/
  s/\bChainPosRule\b/otv_x_ux_y_uy_z_uz_p_sp, "ChainPosRule"/
  s/\bChainSubClassRule\b/otv_x_ux_y_uy_z_uz_p_sp, "ChainSubClassRule"/
  s/\bChainSubRule\b/otv_x_ux_y_uy_z_uz_p_sp, "ChainSubRule"/

  s/\bContextPosFormat2\b/otv_u_O_O_x_Onx, "ContextPosFormat2"/
  s/\bContextSubstFormat2\b/otv_u_O_O_x_Onx, "ContextSubstFormat2"/

  s/\bContextPosFormat3\b/otv_u_x_y_Ox_sy, "ContextPosFormat3"/
  s/\bContextSubstFormat3\b/otv_u_x_y_Ox_sy, "ContextSubstFormat3"/

  s/\bChainContextPosFormat2\b/otv_u_O_O_O_O_x_Onx, "ChainContextPosFormat2"/
  s/\bChainContextSubstFormat2\b/otv_u_O_O_O_O_x_Onx, 
"ChainContextSubstFormat2"/

  s/\bChainContextPosFormat3\b/otv_u_x_Ox_y_Oy_z_Oz_p_sp, 
"ChainContextPosFormat3"/
  s/\bChainContextSubstFormat3\b/otv_u_x_Ox_y_Oy_z_Oz_p_sp, 
"ChainContextSubstFormat3"/

  # otvgdef.c

  s/\bAttachList\b/otv_O_x_Ox, "AttachList"/
  s/\bLigCaretList\b/otv_O_x_Ox, "LigCaretList"/

  s/\bCaretValue\b/otv_CaretValue_validate, "CaretValue"/

  # otvjstf.c

  s/\bJstfPriority\b/otv_JstfPriority_validate, "JstfPriority"/
  s/\bJstfLookup\b/otv_GPOS_subtable_validate, ""/

  # otvgpos.c

  s/\bBaseArray\b/otv_x_sxy, "BaseArray"/
  s/\bLigatureAttach\b/otv_x_sxy, "LigatureAttach"/
  s/\bMark2Array\b/otv_x_sxy, "Mark2Array"/

  s/\bMarkBasePosFormat1\b/otv_u_O_O_u_O_O, "MarkBasePosFormat1"/
  s/\bMarkLigPosFormat1\b/otv_u_O_O_u_O_O, "MarkLigPosFormat1"/
  s/\bMarkMarkPosFormat1\b/otv_u_O_O_u_O_O, "MarkMarkPosFormat1"/

  # otvgsub.c

  s/\bLigature\b/otv_Ligature_validate, "Ligature"/
}

reply via email to

[Prev in Thread] Current Thread [Next in Thread]