示例#1
0
文件: glue.c 项目: Oxyoptia/x3270
/*
 * Initialize the model number and oversize. This needs to happen before the
 * screen is initialized.
 */
void
model_init(void)
{
    int model_number;
    int ovc, ovr;

    /*
     * Sort out model and color modes, based on the model number resource.
     */
    model_number = parse_model_number(appres.model);
    if (model_number < 0) {
	popup_an_error("Invalid model number: %s", appres.model);
	model_number = 0;
    }
    if (!model_number) {
#if defined(RESTRICT_3279) /*[*/
	model_number = 3;
#else /*][*/
	model_number = 4;
#endif /*]*/
    }
#if defined(RESTRICT_3279) /*[*/
    if (appres.m3279 && model_number == 4) {
	model_number = 3;
    }
#endif /*]*/
    if (appres.interactive.mono) {
	appres.m3279 = false;
    }

    if (!appres.extended) {
	appres.oversize = NULL;
    }

    ovc = 0;
    ovr = 0;
    if (appres.extended && appres.oversize != NULL) {
	if (product_auto_oversize() && !strcasecmp(appres.oversize, "auto")) {
	    ovc = -1;
	    ovr = -1;
	} else {
	    int x_ovc, x_ovr;
	    char junk;

	    if (sscanf(appres.oversize, "%dx%d%c", &x_ovc, &x_ovr,
			&junk) == 2) {
		ovc = x_ovc;
		ovr = x_ovr;
	    } else {
		xs_warning("Invalid %s value '%s'", ResOversize,
			appres.oversize);
	    }
	}
    }
    set_rows_cols(model_number, ovc, ovr);
    net_set_default_termtype();
}
示例#2
0
文件: glue.c 项目: hharte/c3270
/*
 * Initialize the model number and oversize. This needs to happen before the
 * screen is initialized.
 */
void
model_init(void)
{
	int model_number;
	int ovc, ovr;

	/*
	 * Sort out model and color modes, based on the model number resource.
	 */
	model_number = parse_model_number(appres.model);
	if (model_number < 0) {
		popup_an_error("Invalid model number: %s", appres.model);
		model_number = 0;
	}
	if (!model_number) {
#if defined(RESTRICT_3279) /*[*/
		model_number = 3;
#else /*][*/
		model_number = 4;
#endif /*]*/
	}
#if defined(RESTRICT_3279) /*[*/
	if (appres.m3279 && model_number == 4) {
		model_number = 3;
	}
#endif /*]*/
#if defined(C3270) && !defined(_WIN32) /*[*/
	if (appres.mono)
		appres.m3279 = False;
#endif /*]*/

	if (!appres.extended) {
		appres.oversize = CN;
	}

	ovc = 0;
	ovr = 0;
	if (appres.extended && appres.oversize != CN) {
#if defined(C3270) /*[*/
	    	if (!strcasecmp(appres.oversize, "auto")) {
		    	ovc = -1;
			ovr = -1;
		} else
#endif /*]*/
		{
		    	int x_ovc, x_ovr;
			char junk;

			if (sscanf(appres.oversize, "%dx%d%c", &x_ovc, &x_ovr,
				    &junk) == 2) {
			    	ovc = x_ovc;
				ovr = x_ovr;
			}
		}
	}
	set_rows_cols(model_number, ovc, ovr);
	if (appres.termname != CN) {
		termtype = appres.termname;
	} else {
		termtype = full_model_name;
	}
}
示例#3
0
文件: glue.c 项目: laubstein/pw3270
void lib3270_session_init(H3270 *hSession, const char *model)
{
	int 	ovc, ovr;
	char	junk;
	int		model_number;

	memset(hSession,0,sizeof(H3270));
	hSession->sz = sizeof(H3270);
	hSession->sock = -1;
	hSession->model_num = -1;
//	hSession->first_changed = -1;
//	hSession->last_changed = -1;
	hSession->cstate = NOT_CONNECTED;
	hSession->oia_status = -1;

	strncpy(hSession->full_model_name,"IBM-",FULL_MODEL_NAME_SIZE);
	hSession->model_name = &hSession->full_model_name[4];

	/*
	 * Sort out model and color modes, based on the model number resource.
	 */ /*
	if(appres.model && *appres.model)
		model = appres.model;
	*/

	if(!*model)
		model = "2";	// No model, use the default one

//	Trace("Parsing model: %s",appres.model);
	model_number = parse_model_number(model);
	if (model_number < 0)
	{
		popup_an_error("Invalid model number: %s", model);
		model_number = 0;
	}

	if (!model_number)
	{
#if defined(RESTRICT_3279)
		model_number = 3;
#else
		model_number = 4;
#endif
	}

	if(appres.mono)
		appres.m3279 = False;

	if(!appres.extended)
		appres.oversize = CN;

#if defined(RESTRICT_3279)
	if (appres.m3279 && model_number == 4)
		model_number = 3;
#endif

	Trace("Model_number: %d",model_number);

	if (!appres.extended || appres.oversize == CN || sscanf(appres.oversize, "%dx%d%c", &ovc, &ovr, &junk) != 2)
	{
		ovc = 0;
		ovr = 0;
	}
	ctlr_set_rows_cols(hSession, model_number, ovc, ovr);

	if (appres.termname != CN)
		hSession->termtype = appres.termname;
	else
		hSession->termtype = hSession->full_model_name;

	Trace("Termtype: %s",hSession->termtype);

	if (appres.apl_mode)
		appres.charset = Apl;

}