On Tue, Nov 11, 2003 at 12:24:56PM +0200, Martin Vermeer wrote:
> I think I got a little closer the root of the problem. 
> 
> In text3.C, the case LFUN_INSERT_LABEL is not handled. So I added it:
> 
>    1542     case LFUN_INDEX_PRINT:
>    1543     case LFUN_TOC_INSERT:
>    1544     case LFUN_HFILL:
>    1545     case LFUN_INSERT_LINE:
>    1546     case LFUN_INSERT_PAGEBREAK:
>    1547     case LFUN_INSERT_LABEL:
>    1548         // do nothing fancy
>    1550         doInsertInset(this, cmd, false, false);
>    1552         break;
> 
> After this, doInsertInset calls 
> 
>     485     InsetOld * inset = createInset(cmd);
> 
> which is in factory.C. There, however, the handling of "label" is
> behind LFUN_INSET_INSERT, a different LFUN.
> 
> Where should the conversion LFUN_INSERT_LABEL -> LFUN_INSET_INSERT
> take place?

I'd just duplicate the code in factory.C. I.e:

In addition to

        case LFUN_INSET_INSERT: {
                string const name = cmd.getArg(0);

                if (name == "bibitem") {
                        InsetCommandParams icp;
                        InsetCommandMailer::string2params(cmd.argument, icp);
                        return new InsetBibitem(icp);

there could/should be a

        case LFUN_INSERT_BIBITEM:
                InsetCommandParams icp;
                InsetCommandMailer::string2params(cmd.argument, icp);
                return new InsetBibitem(icp);

At some point of time we could make our minds up whether we want a
general  LFUN_INSET_INSERT + name  or special  LFUN_INSET_FOO lfuns.

Andre'

-- 
Those who desire to give up Freedom in order to gain Security, will not have,
nor do they deserve, either one.     (T. Jefferson or B. Franklin or both...)

Reply via email to