Beispiel #1
0
main ()
{
    int i, j, k, c;
    char line[MAXLENGTH];
    int slash[MAXLENGTH];
    j = k = 0;
    slash[0] = -1;

    while ((c = getchar()) != EOF)
    {
        line[i] = c;
        ++i;

        if (c == '/')
        {
            slash[j] = i - 1;
            ++j;
            slash[j]= -1;
        }
        else if (c == '\n')
        {
            if (k == 0)
            {
                printf ("%c", '\n');
                k = 1;
            }
            line[i] = '\0';
            fixline (line, slash);
            i = j = 0;
            slash[0] = -1;
         }
    }
}
Beispiel #2
0
void readfile( unsigned char *fname ) {
	FILE *fp, *fopen( );
	unsigned char str[MAXWORDLENGTH];
	unsigned char *ostr;
	int l, i;

	fp = fopen( fname, "r" );

	while ( !feof( fp ) ) {
		fgets( str, MAXWORDLENGTH - 1, fp );
		if ( !feof( fp ) ) {
			fixline( str );
			wordptr[numword] = ( unsigned char * ) malloc( ( l = strlen( str ) ) + 2 );
			if ( wordptr[numword] == NULL )
				printf( "Memory Error\n" );
			strcpy( wordptr[numword] + 1, str );
			wordptr[numword][l] = 0;            /* Remove new line */
			wordptr[numword][0] = l - 1;

			if ( numword > 0 )
				if ( strcmp( wordptr[numword] + 1, wordptr[numword - 1] + 1 )<0 ) {
					ostr = wordptr[numword];
					i = numword;
					while ( i && ( strcmp( ostr + 1, wordptr[i - 1] + 1 )<0 ) ) {
						wordptr[i] = wordptr[i - 1];
						i--;
					}
					wordptr[i] = ostr;
				}
			numword++;
			if ( numword % 2000 == 0 )
				printf( "%d\n", numword );
		}
	}
	fclose( fp );
	printf( "Reading dictionary done %d.\n", numword );
}
Beispiel #3
0
/*---------------------------------------------------------------*/
void do_mouse(HWND hwnd, DWORD wParam, DWORD lParam, int msg) {

    int o,x,y,n,i;
    static int mox,moy;
    static char mf2;
    static char lf2;

#ifdef NOCAPT
    static char wmf;
    static int  mux,muy;
#endif

    switch (msg) {
    case WM_MOUSEMOVE: //move
        if ((wParam & MK_RBUTTON)!=0) {
#ifdef NOCAPT
            mox=(short)LOWORD(lParam);
            moy=(short)HIWORD(lParam);
            if (wmf==0) {
                wmf=1,mux=mox,muy=moy;
                return;
            }
            MoveWindow(hwnd,wx0+mox-mux,wy0+moy-muy,wxl,wyl,TRUE);
#endif
            return;
        }

        if (clickflag) return;

        if ((wParam & MK_LBUTTON)==0 || edp==NULL) {
            mox=(short)LOWORD(lParam);
            moy=(short)HIWORD(lParam);
            getmouxy(mox,moy,&x,&y);
            if (edp==NULL) i=1;
            else i=inmark(x+clft,y);
            SetCursor(i?pointC:hCurs);
            return;
        }

        if (lf2==0) return;
#ifndef MV_DandD
mm3:
#endif
        if (drag) {
            setdragc(2+(0!=(GetAsyncKeyState(VK_CONTROL)&0x8000)));
        }
        n=((wParam & MK_SHIFT)!=0 || 0==moumrk);
        if (n==0) { mf2=0; goto mm1; }
        if (mf2) goto mm1;
        mf2=1;
        goto mm2;



    case WM_LBUTTONDBLCLK:
        lf2=0;
        if (edp) {
            o=getkword(fpos, tmpbuff);
            if (tmpbuff[0]) {
                ed_cmd(EK_MARK,o, o+strlen(tmpbuff));
                return;
            }
        }
        goto drag_cancel;

    case WM_LBUTTONDOWN:
        lf2=1;
        resetmsg(hwnd);
        if (clickflag && --clickflag) return;

//#ifndef MV_DandD
        SetCapture(hwnd);
//#endif
        n=2;
mm1:
        mox=(short)LOWORD(lParam);
        moy=(short)HIWORD(lParam);
mm2:
        if (edp==NULL) return;

        o=getmoupos(mox,moy);

        if (o) {
            settimer(hwnd,o,SCROLL_INTERVAL);
            return;
        }

        ed_cmd(EK_SETVAR);
        getmouxy(mox,moy,&x,&y);

        if (n==2 && inmark(x+clft,y)) {
#ifndef MV_DandD
            drag=1;
            goto mm3;
#else
            char *get_block(void);
            char *get_vblock(void);
            char *p,*q; int n;
            p=vmark ? get_vblock() : get_block();
            if (p!=NULL) {
                q = m_alloc(entab (NULL, p, n=strlen(p), tabs)+1);
                q[entab (q, p, n, tabs)]=0;
                i=do_drag(q),
                m_free(q);
                m_free(p);
                if (i==1) ed_cmd(KEY_DELETE);
            }
            return;
#endif
        }

        if (drag && linmrk && vmark==0 && fixline(*ma) != fixline(*me))
            curx=0;

        if (drag && n!=2 && dragmove<2) dragmove++;

        if (n==2)    unmark();
        if (drag==0) setvmark(n==1);
        return;


    case WM_LBUTTONUP:
        lf2=0;
        if (dragmove==2) {
            ed_cmd(drag==3 ? EK_DRAG_COPY : EK_DRAG_MOVE);
            SetCursor(hCurs);
        } else
        if (drag) unmark();
drag_cancel:
        mf2=drag=dragmove=0;
        settimer(hwnd,0,0);

#ifndef MV_DandD
        ReleaseCapture();
#endif
        return;


    case WM_RBUTTONDOWN:
#if 0
        if (NULL!=ShortCut) {
        POINT pt;
        GetCursorPos(&pt);
        TrackPopupMenu(ShortCut,TPM_CENTERALIGN|TPM_RIGHTBUTTON,
                pt.x, pt.y ,0,hwnd,NULL
                );
        return;
        }
#endif

#ifdef NOCAPT
        SetCapture(hwnd);
        mox=(short)LOWORD(lParam);
        moy=(short)HIWORD(lParam);
        wmf=1,mux=mox,muy=moy;
#endif
        return;

    case WM_RBUTTONUP:
#ifdef NOCAPT
        wmf=0;
        if (NULL==ShortCut)
            ReleaseCapture();
#endif
        return;
    }
}