[Redbutton-devel] SF.net SVN: redbutton: [454] redbutton-author/trunk
Brought to you by:
skilvington
|
From: <ski...@us...> - 2007-10-29 16:42:38
|
Revision: 454
http://redbutton.svn.sourceforge.net/redbutton/?rev=454&view=rev
Author: skilvington
Date: 2007-10-29 09:42:31 -0700 (Mon, 29 Oct 2007)
Log Message:
-----------
give access to the ASN1TAGCLASS_XXX constants when XXX is not known until run time
Modified Paths:
--------------
redbutton-author/trunk/asn1tag.c
redbutton-author/trunk/asn1tag.h
Modified: redbutton-author/trunk/asn1tag.c
===================================================================
--- redbutton-author/trunk/asn1tag.c 2007-10-25 16:06:59 UTC (rev 453)
+++ redbutton-author/trunk/asn1tag.c 2007-10-29 16:42:31 UTC (rev 454)
@@ -20,6 +20,10 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
#include "asn1tag.h"
char *
@@ -51,3 +55,485 @@
|| (asn1class == ASN1CLASS_UNIVERSAL && asn1tag == ASN1TAG_SEQUENCE)
|| (asn1class == ASN1CLASS_UNIVERSAL && asn1tag == ASN1TAG_SET);
}
+
+/*
+ * give access to ASN1TAGCLASS_XXX constants when XXX is not known until run time
+ */
+
+#define MATCH(TYPE) if(strcmp(name, #TYPE) == 0) return ASN1TAGCLASS_ ## TYPE;
+
+unsigned int
+asn1tagclass(const char *name)
+{
+ MATCH(Root)
+ MATCH(Group)
+ MATCH(Presentable)
+ MATCH(Ingredient)
+ MATCH(Program)
+ MATCH(Variable)
+ MATCH(Visible)
+ MATCH(Interactible)
+ MATCH(Button)
+ MATCH(TokenManager)
+ MATCH(ObjectIdentifier)
+ MATCH(TokenGroupBody)
+ MATCH(LineArtBody)
+ MATCH(TextBody)
+ MATCH(PushButtonBody)
+ MATCH(BoxSize)
+ MATCH(OctetString)
+ MATCH(ApplicationClass)
+ MATCH(SceneClass)
+ MATCH(StandardIdentifier)
+ MATCH(StandardVersion)
+ MATCH(ObjectInformation)
+ MATCH(OnStartUp)
+ MATCH(OnCloseDown)
+ MATCH(OriginalGroupCachePriority)
+ MATCH(Items)
+ MATCH(ResidentProgramClass)
+ MATCH(RemoteProgramClass)
+ MATCH(InterchangedProgramClass)
+ MATCH(PaletteClass)
+ MATCH(FontClass)
+ MATCH(CursorShapeClass)
+ MATCH(BooleanVariableClass)
+ MATCH(IntegerVariableClass)
+ MATCH(OctetStringVariableClass)
+ MATCH(ObjectRefVariableClass)
+ MATCH(ContentRefVariableClass)
+ MATCH(LinkClass)
+ MATCH(StreamClass)
+ MATCH(BitmapClass)
+ MATCH(LineArtClass)
+ MATCH(DynamicLineArtClass)
+ MATCH(RectangleClass)
+ MATCH(HotspotClass)
+ MATCH(SwitchButtonClass)
+ MATCH(PushButtonClass)
+ MATCH(TextClass)
+ MATCH(EntryFieldClass)
+ MATCH(HyperTextClass)
+ MATCH(SliderClass)
+ MATCH(TokenGroupClass)
+ MATCH(ListGroupClass)
+ MATCH(OnSpawnCloseDown)
+ MATCH(OnRestart)
+ MATCH(DefaultAttributes)
+ MATCH(CharacterSet)
+ MATCH(BackgroundColour)
+ MATCH(TextContentHook)
+ MATCH(TextColour)
+ MATCH(Font)
+ MATCH(FontAttributes)
+ MATCH(InterchangedProgramContentHook)
+ MATCH(StreamContentHook)
+ MATCH(BitmapContentHook)
+ MATCH(LineArtContentHook)
+ MATCH(ButtonRefColour)
+ MATCH(HighlightRefColour)
+ MATCH(SliderRefColour)
+ MATCH(InputEventRegister)
+ MATCH(SceneCoordinateSystem)
+ MATCH(AspectRatio)
+ MATCH(MovingCursor)
+ MATCH(NextScenes)
+ MATCH(InitiallyActive)
+ MATCH(ContentHook)
+ MATCH(OriginalContent)
+ MATCH(Shared)
+ MATCH(ContentSize)
+ MATCH(ContentCachePriority)
+ MATCH(LinkCondition)
+ MATCH(LinkEffect)
+ MATCH(Name)
+ MATCH(InitiallyAvailable)
+ MATCH(ProgramConnectionTag)
+ MATCH(OriginalValue)
+ MATCH(ObjectReferenceValue)
+ MATCH(ContentReference69)
+ MATCH(MovementTable)
+ MATCH(TokenGroupItems)
+ MATCH(NoTokenActionSlots)
+ MATCH(Positions)
+ MATCH(WrapAround)
+ MATCH(MultipleSelection)
+ MATCH(OriginalBoxSize)
+ MATCH(OriginalPosition)
+ MATCH(OriginalPaletteRef)
+ MATCH(Tiling)
+ MATCH(OriginalTransparency)
+ MATCH(BorderedBoundingBox)
+ MATCH(OriginalLineWidth)
+ MATCH(OriginalLineStyle)
+ MATCH(OriginalRefLineColour)
+ MATCH(OriginalRefFillColour)
+ MATCH(OriginalFont)
+ MATCH(HorizontalJustification)
+ MATCH(VerticalJustification)
+ MATCH(LineOrientation)
+ MATCH(StartCorner)
+ MATCH(TextWrapping)
+ MATCH(Multiplex)
+ MATCH(Storage)
+ MATCH(Looping)
+ MATCH(AudioClass)
+ MATCH(VideoClass)
+ MATCH(RTGraphicsClass)
+ MATCH(ComponentTag)
+ MATCH(OriginalVolume)
+ MATCH(Termination)
+ MATCH(EngineResp)
+ MATCH(Orientation)
+ MATCH(MaxValue)
+ MATCH(MinValue)
+ MATCH(InitialValue)
+ MATCH(InitialPortion)
+ MATCH(StepSize)
+ MATCH(SliderStyle)
+ MATCH(InputType)
+ MATCH(CharList)
+ MATCH(ObscuredInput)
+ MATCH(MaxLength)
+ MATCH(OriginalLabel)
+ MATCH(ButtonStyle)
+ MATCH(Activate)
+ MATCH(Add)
+ MATCH(AddItem)
+ MATCH(Append)
+ MATCH(BringToFront)
+ MATCH(Call)
+ MATCH(CallActionSlot)
+ MATCH(Clear)
+ MATCH(Clone)
+ MATCH(CloseConnection)
+ MATCH(Deactivate)
+ MATCH(DelItem)
+ MATCH(Deselect)
+ MATCH(DeselectItem)
+ MATCH(Divide)
+ MATCH(DrawArc)
+ MATCH(DrawLine)
+ MATCH(DrawOval)
+ MATCH(DrawPolygon)
+ MATCH(DrawPolyline)
+ MATCH(DrawRectangle)
+ MATCH(DrawSector)
+ MATCH(Fork)
+ MATCH(GetAvailabilityStatus)
+ MATCH(GetBoxSize)
+ MATCH(GetCellItem)
+ MATCH(GetCursorPosition)
+ MATCH(GetEngineSupport)
+ MATCH(GetEntryPoint)
+ MATCH(GetFillColour)
+ MATCH(GetFirstItem)
+ MATCH(GetHighlightStatus)
+ MATCH(GetInteractionStatus)
+ MATCH(GetItemStatus)
+ MATCH(GetLabel)
+ MATCH(GetLastAnchorFired)
+ MATCH(GetLineColour)
+ MATCH(GetLineStyle)
+ MATCH(GetLineWidth)
+ MATCH(GetListItem)
+ MATCH(GetListSize)
+ MATCH(GetOverwriteMode)
+ MATCH(GetPortion)
+ MATCH(GetPosition)
+ MATCH(GetRunningStatus)
+ MATCH(GetSelectionStatus)
+ MATCH(GetSliderValue)
+ MATCH(GetTextContent)
+ MATCH(GetTextData)
+ MATCH(GetTokenPosition)
+ MATCH(GetVolume)
+ MATCH(Launch)
+ MATCH(LockScreen)
+ MATCH(Modulo)
+ MATCH(Move)
+ MATCH(MoveTo)
+ MATCH(Multiply)
+ MATCH(OpenConnection)
+ MATCH(Preload)
+ MATCH(PutBefore)
+ MATCH(PutBehind)
+ MATCH(Quit)
+ MATCH(ReadPersistent)
+ MATCH(Run)
+ MATCH(ScaleBitmap)
+ MATCH(ScaleVideo)
+ MATCH(ScrollItems)
+ MATCH(Select)
+ MATCH(SelectItem)
+ MATCH(SendEvent)
+ MATCH(SendToBack)
+ MATCH(SetBoxSize)
+ MATCH(SetCachePriority)
+ MATCH(SetCounterEndPosition)
+ MATCH(SetCounterPosition)
+ MATCH(SetCounterTrigger)
+ MATCH(SetCursorPosition)
+ MATCH(SetCursorShape)
+ MATCH(SetData)
+ MATCH(SetEntryPoint)
+ MATCH(SetFillColour)
+ MATCH(SetFirstItem)
+ MATCH(SetFontRef)
+ MATCH(SetHighlightStatus)
+ MATCH(SetInteractionStatus)
+ MATCH(SetLabel)
+ MATCH(SetLineColour)
+ MATCH(SetLineStyle)
+ MATCH(SetLineWidth)
+ MATCH(SetOverwriteMode)
+ MATCH(SetPaletteRef)
+ MATCH(SetPortion)
+ MATCH(SetPosition)
+ MATCH(SetSliderValue)
+ MATCH(SetSpeed)
+ MATCH(SetTimer)
+ MATCH(SetTransparency)
+ MATCH(SetVariable)
+ MATCH(SetVolume)
+ MATCH(Spawn)
+ MATCH(Step)
+ MATCH(Stop)
+ MATCH(StorePersistent)
+ MATCH(Subtract)
+ MATCH(TestVariable)
+ MATCH(Toggle)
+ MATCH(ToggleItem)
+ MATCH(TransitionTo)
+ MATCH(Unload)
+ MATCH(UnlockScreen)
+ MATCH(NewGenericBoolean)
+ MATCH(NewGenericInteger)
+ MATCH(NewGenericOctetstring)
+ MATCH(NewGenericObjectReference)
+ MATCH(NewGenericContentReference)
+ MATCH(NewColourIndex)
+ MATCH(NewAbsoluteColour)
+ MATCH(NewFontName)
+ MATCH(NewFontReference)
+ MATCH(NewContentSize)
+ MATCH(NewContentCachePriority)
+ MATCH(IndirectReference)
+ MATCH(SetBackgroundColour)
+ MATCH(SetCellPosition)
+ MATCH(SetInputReg)
+ MATCH(SetTextColour)
+ MATCH(SetFontAttributes)
+ MATCH(SetVideoDecodeOffset)
+ MATCH(GetVideoDecodeOffset)
+ MATCH(GetFocusPosition)
+ MATCH(SetFocusPosition)
+ MATCH(SetBitmapDecodeOffset)
+ MATCH(GetBitmapDecodeOffset)
+ MATCH(SetSliderParameters)
+ MATCH(BOOLEAN)
+ MATCH(INTEGER)
+ MATCH(OCTETSTRING)
+ MATCH(NULL)
+ MATCH(ENUMERATED)
+ MATCH(SEQUENCE)
+ MATCH(SET)
+ MATCH(Null)
+ MATCH(JointIsoItuIdentifier)
+ MATCH(MHEGStandardIdentifier)
+ MATCH(DirectFont)
+ MATCH(IndirectFont)
+ MATCH(XScene)
+ MATCH(YScene)
+ MATCH(Width)
+ MATCH(Height)
+ MATCH(SceneRef)
+ MATCH(SceneWeight)
+ MATCH(IncludedContent)
+ MATCH(EventSource)
+ MATCH(EventType)
+ MATCH(EventData)
+ MATCH(ObjectReference)
+ MATCH(ContentReferenceValue)
+ MATCH(TargetElement)
+ MATCH(AVisible)
+ MATCH(Position)
+ MATCH(XLength)
+ MATCH(YLength)
+ MATCH(AbsoluteTime)
+ MATCH(Address)
+ MATCH(Answer)
+ MATCH(AppendValue)
+ MATCH(ArcAngle)
+ MATCH(AvailabilityStatusVar)
+ MATCH(CallSucceeded)
+ MATCH(CellIndex)
+ MATCH(CloneRefVar)
+ MATCH(ConnectionTag)
+ MATCH(Denominator)
+ MATCH(EllipseHeight)
+ MATCH(EllipseWidth)
+ MATCH(EmulatedEventSource)
+ MATCH(EmulatedEventType)
+ MATCH(EntryPointVar)
+ MATCH(ForkSucceeded)
+ MATCH(Feature)
+ MATCH(FillColourVar)
+ MATCH(FirstItemVar)
+ MATCH(HighlightStatusVar)
+ MATCH(Index)
+ MATCH(InFileName)
+ MATCH(InteractionStatusVar)
+ MATCH(ItemIndex)
+ MATCH(ItemRefVar)
+ MATCH(ItemStatusVar)
+ MATCH(ItemsToScroll)
+ MATCH(LabelVar)
+ MATCH(LastAnchorFiredVar)
+ MATCH(LineColourVar)
+ MATCH(LineStyleVar)
+ MATCH(LineWidthVar)
+ MATCH(MovementIdentifier)
+ MATCH(NbOfSteps)
+ MATCH(NewCachePriority)
+ MATCH(NewCounterEndPosition)
+ MATCH(NewCounterPosition)
+ MATCH(NewCounterValue)
+ MATCH(NewCursorShape)
+ MATCH(NewEntryPoint)
+ MATCH(NewFirstItem)
+ MATCH(NewGenericOctetString)
+ MATCH(NewHighlightStatus)
+ MATCH(NewIncludedContent)
+ MATCH(NewInteractionStatus)
+ MATCH(NewLabel)
+ MATCH(NewLineStyle)
+ MATCH(NewLineWidth)
+ MATCH(NewOverwriteMode)
+ MATCH(NewPaletteRef)
+ MATCH(NewPortion)
+ MATCH(NewSliderValue)
+ MATCH(NewSpeed)
+ MATCH(NewTransparency)
+ MATCH(NewVolume)
+ MATCH(NewXPosition)
+ MATCH(NewYPosition)
+ MATCH(Numerator)
+ MATCH(OpenSucceeded)
+ MATCH(Operator)
+ MATCH(OutFileName)
+ MATCH(OverwriteModeVar)
+ MATCH(PortionVar)
+ MATCH(Protocol)
+ MATCH(ReadSucceeded)
+ MATCH(ReferenceVisible)
+ MATCH(RunningStatusVar)
+ MATCH(SelectionStatusVar)
+ MATCH(SizeVar)
+ MATCH(SliderValueVar)
+ MATCH(StartAngle)
+ MATCH(StoreSucceeded)
+ MATCH(Target)
+ MATCH(TextContentVar)
+ MATCH(TextDataVar)
+ MATCH(TimerID)
+ MATCH(TimerValue)
+ MATCH(TokenPositionVar)
+ MATCH(TransitionEffect)
+ MATCH(TriggerIdentifier)
+ MATCH(Value)
+ MATCH(VisibleReference)
+ MATCH(VolumeVar)
+ MATCH(X)
+ MATCH(X1)
+ MATCH(X2)
+ MATCH(XBoxSizeVar)
+ MATCH(XCursor)
+ MATCH(XNewBoxSize)
+ MATCH(XOut)
+ MATCH(XPositionVar)
+ MATCH(XScale)
+ MATCH(Y)
+ MATCH(Y1)
+ MATCH(Y2)
+ MATCH(YBoxSizeVar)
+ MATCH(YCursor)
+ MATCH(YNewBoxSize)
+ MATCH(YOut)
+ MATCH(YPositionVar)
+ MATCH(YScale)
+ MATCH(XOffsetVar)
+ MATCH(YOffsetVar)
+ MATCH(NewXOffset)
+ MATCH(NewYOffset)
+ MATCH(FocusPositionVar)
+ MATCH(NewFocusPosition)
+ MATCH(NewMinValue)
+ MATCH(NewMaxValue)
+ MATCH(NewStepSize)
+ MATCH(InternalReference)
+ MATCH(GroupIdentifier)
+ MATCH(ObjectNumber)
+ MATCH(DirectReference)
+ MATCH(ColourIndex)
+ MATCH(AbsoluteColour)
+ MATCH(XPosition)
+ MATCH(YPosition)
+ MATCH(ReferencedContent)
+ MATCH(XYPosition)
+ MATCH(Point)
+ MATCH(Rational)
+ MATCH(ExternalReference)
+ MATCH(NewReferencedContent)
+ MATCH(NextScene)
+ MATCH(TokenGroupItem)
+ MATCH(Movement)
+ MATCH(ActionSlots)
+ MATCH(InVariables)
+ MATCH(OutVariables)
+ MATCH(ActionClass)
+ MATCH(Parameters)
+ MATCH(PointList)
+ MATCH(ActionClassSeq)
+ MATCH(ContentReference)
+ MATCH(InterchangedObject)
+ MATCH(ActionSlot)
+ MATCH(ActionSlotSeq)
+ MATCH(ButtonStyleEnum)
+ MATCH(Colour)
+ MATCH(ContentBody)
+ MATCH(DefaultAttribute)
+ MATCH(ElementaryAction)
+ MATCH(EventDataBody)
+ MATCH(EventTypeEnum)
+ MATCH(FontBody)
+ MATCH(GenericBoolean)
+ MATCH(GenericContentReference)
+ MATCH(GenericInteger)
+ MATCH(GenericObjectReference)
+ MATCH(GenericOctetString)
+ MATCH(GroupItem)
+ MATCH(InputTypeEnum)
+ MATCH(JustificationEnum)
+ MATCH(LineOrientationEnum)
+ MATCH(OrientationEnum)
+ MATCH(OriginalValueBody)
+ MATCH(Parameter)
+ MATCH(SliderStyleEnum)
+ MATCH(StartCornerEnum)
+ MATCH(StorageEnum)
+ MATCH(StreamComponent)
+ MATCH(TerminationEnum)
+ MATCH(ComparisonValue)
+ MATCH(EmulatedEventData)
+ MATCH(NewColour)
+ MATCH(NewContent)
+ MATCH(NewFont)
+ MATCH(NewVariableValue)
+
+ fprintf(stderr, "Unknown ASN1TAGCLASS type: %s\n", name);
+ exit(EXIT_FAILURE);
+
+ return ASN1TAG_BAD;
+}
+
Modified: redbutton-author/trunk/asn1tag.h
===================================================================
--- redbutton-author/trunk/asn1tag.h 2007-10-25 16:06:59 UTC (rev 453)
+++ redbutton-author/trunk/asn1tag.h 2007-10-29 16:42:31 UTC (rev 454)
@@ -43,6 +43,8 @@
#define ASN1TAG_SYNTHETIC 10000
/* the tag for CHOICE types is determined by which choice we choose */
#define ASN1TAG_CHOICE 10001
+/* for signalling internal parser errors */
+#define ASN1TAG_BAD 10002
/* abstract types */
#define ASN1TAGCLASS_Root ASN1TAG_SYNTHETIC
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|