ini_sContext *ini_CheckContext ( pwr_tStatus *status, ini_sContext *cp ) { pwr_dStatus(sts, status, INI__SUCCESS); ini_LoadDirectory(sts, cp); if (!cp->flags.b.aliasfile) sprintf(cp->aliasfile.name, dbs_cNameAlias, cp->dir); cdh_ToLower(cp->aliasfile.name, cp->aliasfile.name); cp->nodefile.errcount = NULL; cp->nodefile.logOpenFail = errh_LogInfo; if (!cp->flags.b.applfile) sprintf(cp->applfile.name, dbs_cNameAppl, cp->dir, cp->nodename, cp->busid); cdh_ToLower(cp->applfile.name, cp->applfile.name); cp->applfile.errcount = NULL; cp->applfile.logOpenFail = errh_LogInfo; if (!cp->flags.b.bootfile) sprintf(cp->bootfile.name, dbs_cNameBoot, cp->dir, cp->nodename, cp->busid); cdh_ToLower(cp->bootfile.name, cp->bootfile.name); cp->bootfile.errcount = &cp->fatals; cp->bootfile.logOpenFail = errh_LogFatal; if (!cp->flags.b.nodefile) sprintf(cp->nodefile.name, dbs_cNameNode, cp->dir, cp->nodename, cp->busid); cdh_ToLower(cp->nodefile.name, cp->nodefile.name); cp->nodefile.errcount = &cp->fatals; cp->nodefile.logOpenFail = errh_LogFatal; return cp; }
void Ge::save_graph_and_close( Ge *gectx, char *name) { char filename[80]; char graphname[80]; char *s; int sts; if ( ! gectx->graph->is_subgraph() ) { cdh_ToLower( graphname, name); if ( (s = strrchr( graphname, '.'))) *s = 0; gectx->graph->set_name( graphname); cdh_ToLower( filename, name); if ( ! strrchr( filename, '.')) strcat( filename, ".pwg"); sts = gectx->graph->save( filename); if ( EVEN(sts)) { gectx->message( sts); return; } gectx->message( 'I', "Graph saved"); } else { char filename[80]; char graphname[80]; char *s; int sts; cdh_ToLower( graphname, name); if ( (s = strrchr( graphname, '.'))) *s = 0; gectx->graph->set_name( graphname); cdh_ToLower( filename, name); if ( ! strrchr( filename, '.')) strcat( filename, ".pwsg"); sts = gectx->graph->save_subgraph( filename); if ( EVEN(sts)) { gectx->message( sts); return; } cdh_ToLower( filename, name); if ( ! strrchr( filename, '.')) strcat( filename, ".pwg"); sts = gectx->graph->save( filename); if ( EVEN(sts)) { gectx->message( sts); return; } gectx->message( 'I', "SubGraph saved"); } delete gectx; }
int main( int argc, char *argv[]) { char uid_filename[120] = {"pwr_exe:wb.uid"}; char *uid_filename_p = uid_filename; MrmHierarchy s_DRMh; MrmType dclass; pwr_tStatus sts; XtAppContext app_ctx; char title[80]; Admin *admin; dcli_translate_filename( uid_filename, uid_filename); // First argument is username, and second password strcpy( login_prv.username, "-"); strcpy( login_prv.password, "-"); if ( argc > 0) cdh_ToLower( login_prv.username, argv[1]); if ( argc > 1) cdh_ToLower( login_prv.password, argv[2]); MrmInitialize(); strcpy( title, "PwR Administrator"); toplevel = XtVaAppInitialize ( &app_ctx, "PWR_ADM", NULL, 0, &argc, argv, fbr, XtNallowShellResize, True, XtNtitle, title, XmNmappedWhenManaged, False, NULL); sts = MrmOpenHierarchy( 1, &uid_filename_p, NULL, &s_DRMh); if (sts != MrmSUCCESS) printf("can't open %s\n", uid_filename); sts = MrmFetchWidget(s_DRMh, "mainwindow", toplevel, &mainwindow, &dclass); if (sts != MrmSUCCESS) printf("can't fetch mainwindow\n"); MrmCloseHierarchy( s_DRMh); XtManageChild( mainwindow); admin = new Admin( toplevel, 0); admin->close_cb = &adm_close_cb; XtRealizeWidget( toplevel); XtAppMainLoop(app_ctx); return (0); }
static int help_cmp_items( const void *node1, const void *node2) { char text1[80]; char text2[80]; brow_GetAnnotation( *(brow_tNode *) node1, 0, text1, sizeof(text1)); brow_GetAnnotation( *(brow_tNode *) node2, 0, text2, sizeof(text2)); cdh_ToLower( text1, text1); cdh_ToLower( text2, text2); return ( strcmp( text1, text2)); }
int GeUser::get_user( const char *gu_system, const char *gu_user, const char *gu_password, unsigned int *priv) { UserList *ul; SystemList *sl; SystemName *sn, *parent; int sts; char system[80]; char password[80]; char user[80]; cdh_ToLower( system, gu_system); cdh_ToLower( user, gu_user); strcpy( password, gu_password); // Find system sn = new SystemName( system); sts = sn->parse(); if ( EVEN(sts)) { delete sn; return USER__NOSUCHSYSTEM; } while( sn) { sl = find_system( sn); if ( sl) { ul = (UserList *) sl->find_user( user); if ( ul) { sts = ul->check_password( password); if ( EVEN(sts)) return sts; *priv = ul->priv; return USER__SUCCESS; } if ( !(sl->attributes & user_mSystemAttr_UserInherit)) break; } parent = sn->parent(); if ( parent) parent->parse(); delete sn; sn = parent; } return USER__NOSUCHUSER; }
void Ge::open_graph( char *name) { char filename[80]; char graphname[80]; int path_cnt; char *path; char *s; graph->clear_all(); graph->set_show_grid( 0); cdh_ToLower( filename, name); strcpy( graphname, filename); if ( (s = strrchr( graphname, '.'))) *s = 0; graph->set_name( graphname); if ( ! strrchr( filename, '.')) strcat( filename, ".pwg"); graph->open( filename); subpalette->get_path( &path_cnt, &path); graph->set_subgraph_path( path_cnt, path); update(); set_title(); if ( graph->journal) graph->journal->open( graphname); }
wb_pkg::wb_pkg( char *nodelist, bool distribute, bool config_only) { if ( nodelist) { char node_str[32][20]; int num; cdh_ToLower( nodelist, nodelist); num = dcli_parse( nodelist, " ,", "", (char *)node_str, sizeof(node_str)/sizeof(node_str[0]), sizeof(node_str[0]), 0); m_allnodes = false; for ( int i = 0; i < num; i++) { pkg_node n( node_str[i]); m_nodelist.push_back( n); } } else m_allnodes = true; readConfig(); if ( config_only) return; fetchFiles( distribute); }
void dbs_Split(pwr_tStatus *sts, dbs_sMenv *mep, char *dirName) { int i; for (i = 0; i < mep->nVolRef; i++) { dbs_sVenv *vep; dbs_sVolRef *vrp; int n; int j; int offset; size_t bytes; size_t size; FILE *fp; char fileName[512]; char *p; vep = &mep->venv[i + 1]; vrp = (dbs_sVolRef*)(vep->base + vep->sect[dbs_eSect_volref].offset); n = vep->sect[dbs_eSect_volref].size / sizeof(*vrp); printf("Write meta file %s, %d volrefs\n", vep->vp->name, n); printf(" size %d, index %d, nSect %d\n", vep->size, vep->index, vep->nSect); size = offset = vep->size; sprintf(fileName, "%s/%s.dbs", dirName, vep->vp->name); cdh_ToLower(fileName, fileName); fp = fopen(fileName, "w+b"); if (fp == NULL) { printf("** Cannot open file: %s\n", fileName); perror(" Reason"); return; } else { printf("!! Opened file: %s\n", fileName); } p = vep->base; while (size > 0) { if (size > 512) { bytes = 512; } else { bytes = size; } size -= bytes; if (fwrite(p, bytes, 1, fp) < 1) return; p += bytes; } fclose(fp); for (j = 0; j < n; j++, vrp++) { offset += vrp->size; } } }
void WGeGtk::activate_help(GtkWidget *w, gpointer data) { WGe *ge = (WGe *)data; char key[80]; if ( ge->help_cb) { cdh_ToLower( key, ge->name); (ge->help_cb)( ge, key); } }
static int xtttbl_login_func( void *client_data, void *client_flag) { XttTbl *xtttbl = (XttTbl *)client_data; int sts; char arg1_str[80]; char arg2_str[80]; char systemgroup[80]; unsigned int priv; char msg[80]; // sts = gdh_GetObjectInfo ( "pwrNode-System.SystemGroup", &systemgroup, // sizeof(systemgroup)); // if ( EVEN(sts)) return sts; sts = xtttbl->read_bootfile( 0, systemgroup); if ( EVEN( dcli_get_qualifier( "dcli_arg1", arg1_str, sizeof(arg1_str)))) { xtttbl->cologin = xtttbl->login_new( "PwR Login", systemgroup, xtttbl_login_success_bc, xtttbl_login_cancel_bc, &sts); return 1; } if ( EVEN( dcli_get_qualifier( "dcli_arg2", arg2_str, sizeof(arg2_str)))) { xtttbl->message('E',"Syntax error"); return 1; } cdh_ToLower( arg1_str, arg1_str); cdh_ToLower( arg2_str, arg2_str); sts = user_CheckUser( systemgroup, arg1_str, UserList::pwcrypt(arg2_str), &priv); if ( EVEN(sts)) xtttbl->message('E',"Login failure"); else { strcpy( xtttbl->user, arg1_str); xtttbl->priv = priv; sprintf( msg, "User %s logged in", arg1_str); xtttbl->message('I', msg); } return sts; }
void WGeMotif::activate_help( Widget w, WGe *ge, XmAnyCallbackStruct *data) { char key[80]; if ( ge->help_cb) { cdh_ToLower( key, ge->name); (ge->help_cb)( ge, key); } }
void XttGeGtk::activate_help( GtkWidget *w, gpointer data) { XttGe *ge = (XttGe *)data; char key[80]; if ( ge->help_cb) { cdh_ToLower( key, ge->name); (ge->help_cb)( ge->parent_ctx, key); } }
void CnvXtthelpToText::subject_to_fname( char *fname, const char *subject, int path) { if ( path) { strcpy( fname, ctx->dir); strcat( fname, ctx->rx->name); } else strcpy( fname, ctx->rx->name); strcat( fname, ".txt"); cdh_ToLower( fname, fname); }
static pwr_tStatus OpenObjectGraph ( ldh_sMenuCall *ip ) { int sts; char name[32]; int size; sts = ldh_ObjidToName( ip->PointedSession, ip->Pointed.Objid, ldh_eName_Object, name, sizeof(name), &size); if ( EVEN(sts)) return sts; cdh_ToLower( name, name); ip->wnav->ge_new( name, 0); return PWRS__SUCCESS; }
int CnvWblToPs::init( char *first) { pwr_tFileName fname; char text[200]; strcpy( fname, ctx->dir); strcat( fname, ctx->rw->volume_name); strcat( fname, ".ps"); cdh_ToLower( fname, fname); tops.set_filename( ps_eFile_Info, fname); tops.set_filename( ps_eFile_Body, ps_cTmpFile); tops.open(); // Print first page tops.set_cf( ps_eFile_Info); tops.set_ci( ps_eId_TitlePage); tops.y -= 100; tops.print_image("pwr_logga.gif"); tops.y -= 100; tops.print_h2( Lng::translate("Object Reference Manual")); tops.print_h3( Lng::translate("Volume")); tops.print_h2( ctx->rw->volume_name); tops.y -= 150; tops.print_horizontal_line(); tops.print_text("Version " pwrv_cPwrVersionStr, tops.style[tops.ci].text); tops.print_horizontal_line(); tops.print_pagebreak( 0); tops.set_cf( ps_eFile_Info); tops.set_ci( ps_eId_InfoPage); tops.y = ps_cPageHeight - ps_cTopMargin - 450; tops.print_text(pwrv_cPwrCopyright, tops.style[tops.ci].text); tops.print_text("", tops.style[tops.ci].text); tops.print_text("Permission is granted to copy, distribute and/or modify this document", tops.style[tops.ci].text); tops.print_text("under the terms of the GNU Free Documentation License, Version 1.2", tops.style[tops.ci].text); tops.print_text("or any later version published by the Free Software Foundation;", tops.style[tops.ci].text); tops.print_text("with no Invariant Sections, no Front-Cover Texts, and no Back-Cover", tops.style[tops.ci].text); tops.print_text("Texts.", tops.style[tops.ci].text); tops.y = ps_cPageHeight - ps_cTopMargin; tops.set_cf( ps_eFile_Body); tops.set_ci( ps_eId_Class); sprintf( text, "Volume %s", ctx->rw->volume_name); tops.set_pageheader( text); return 1; }
static pwr_tStatus OpenGraph ( ldh_sMenuCall *ip ) { int sts; char *action; int size; char graph_name[80]; sts = ldh_GetObjectPar( ip->PointedSession, ip->Pointed.Objid, "RtBody", "Name", &action, &size); if ( EVEN(sts)) return sts; cdh_ToLower( graph_name, action); free( (char *)action); ip->wtt->ge_new( graph_name); return 1; }
int wb_dbms_env::create() { struct stat sb; char name[512]; cdh_ToLower(m_fileName, m_fileName); printf("wb_dbms_env::create: %s\n", m_fileName); /* Create the directory, read/write/access owner and group. */ if (stat(m_fileName, &sb) != 0) { if (mkdir(m_fileName, S_IRWXU | S_IRWXG) != 0) { fprintf(stderr, "wb_dbms_env::create: mkdir: %s, %s\n", m_fileName, strerror(errno)); return errno; } } sprintf(name, "%s/%s", m_fileName, "connection.dmsql"); if (stat(name, &sb) != 0) { FILE *fp; fp = fopen(name, "w+b"); if (fp == NULL) { printf("** Cannot open file: %s, %s\n", name, strerror(errno)); return errno; } fprintf(fp, "HOST...: %s\n", m_host); fprintf(fp, "USER...: %s\n", user()); if ( !passwd() || strcmp( passwd(), "") == 0) fprintf(fp, "PASSWD.: (null)\n"); else fprintf(fp, "PASSWD.: %s\n", passwd()); fprintf(fp, "DB_NAME: %s\n", m_dbName); fprintf(fp, "PORT...: %d\n", port()); fprintf(fp, "SOCKET.: %s\n", socket()); fclose(fp); } return 0; }
char *wb_dbms_env::dbName(void) { char pname[80]; pwr_tStatus sts; static char dbname[80]; sts = utl_get_projectname( pname); if ( EVEN(sts)) { printf( "** Project is not configured\n"); return m_dbName; } strcpy( dbname, "pwrp_"); strcat( dbname, pname); strcat( dbname, "__"); strcat( dbname, m_dbName); cdh_ToLower( dbname, dbname); return dbname; }
void CnvXtthelpToHtml::subject_to_fname( char *fname, const char *subject, int path) { char *s, *t; if ( path) { strcpy( fname, ctx->dir); strcat( fname, ctx->rx->name); } else strcpy( fname, ctx->rx->name); strcat( fname, "_"); t = fname + strlen(fname); for ( s = (char *)subject; *s; s++,t++) { if ( *s == ' ' || *s == '(' || *s == ')') *t = '_'; else *t = *s; } *t = 0; strcat( fname, ".html"); cdh_ToLower( fname, fname); }
// // Help for class of an object in wnav // static pwr_tStatus HelpClass( ldh_sMenuCall *ip) { pwr_tStatus sts; int size; char cname[32]; char vname[32]; char cmd[200]; pwr_tCid cid; pwr_tVid vid; sts = ldh_GetAttrRefTid( ip->PointedSession, &ip->Pointed, &cid); if ( EVEN(sts)) return sts; sts = ldh_ClassIdToName( ip->PointedSession, cid, cname, sizeof(cname), &size); if ( EVEN(sts)) return sts; vid = cdh_CidToVid(cid); if ( cdh_cManufactClassVolMin <= vid && vid <= cdh_cManufactClassVolMax) { /* Get help file for this volume */ sts = ldh_VolumeIdToName( ldh_SessionToWB(ip->PointedSession), vid, vname, sizeof(vname), &size); if ( EVEN(sts)) return sts; cdh_ToLower( vname, vname); snprintf( cmd, sizeof(cmd), "help %s /helpfile=\"$pwr_exe/%s/%s_xtthelp.dat\"/strict", cname, lng_get_language_str(), vname); ip->wnav->command( cmd); return 1; } if ( cname[0] == '$') snprintf( cmd, sizeof(cmd), "help %s /strict", &cname[1]); else snprintf( cmd, sizeof(cmd), "help %s /strict", cname); ip->wnav->command( cmd); return 1; }
void wb_build::rootvolume( pwr_tVid vid) { pwr_tStatus sumsts, plcsts; pwr_tOid oid; pwr_tTime modtime; pwr_tObjName vname; pwr_tFileName fname; pwr_tTime dbs_time, rtt_time; pwr_tCmd cmd; char msg[80]; wb_log::push(); if ( !opt.manual) { // Build all plcpgm classlist( pwr_cClass_plc); if ( evenSts()) return; plcsts = sumsts = m_sts; // Build all XttGraph classlist( pwr_cClass_XttGraph); if ( evenSts()) return; if ( sumsts == PWRB__NOBUILT && m_sts != PWRB__NOBUILT) sumsts = m_sts; classlist( pwr_cClass_WebHandler); if ( evenSts()) return; if ( sumsts == PWRB__NOBUILT && m_sts != PWRB__NOBUILT) sumsts = m_sts; classlist( pwr_cClass_WebBrowserConfig); if ( evenSts()) return; if ( sumsts == PWRB__NOBUILT && m_sts != PWRB__NOBUILT) sumsts = m_sts; // Build all WebGraph classlist( pwr_cClass_WebGraph); if ( evenSts()) return; if ( sumsts == PWRB__NOBUILT && m_sts != PWRB__NOBUILT) sumsts = m_sts; // Build all AppGraph classlist( pwr_cClass_AppGraph); if ( evenSts()) return; if ( sumsts == PWRB__NOBUILT && m_sts != PWRB__NOBUILT) sumsts = m_sts; classlist( pwr_cClass_Application); if ( evenSts()) return; if ( sumsts == PWRB__NOBUILT && m_sts != PWRB__NOBUILT) sumsts = m_sts; classlist( pwr_cClass_PlcProcess); if ( evenSts()) return; if ( sumsts == PWRB__NOBUILT && m_sts != PWRB__NOBUILT) sumsts = m_sts; } wb_log::pull(); // Create loadfiles oid.oix = 0; oid.vid = m_session.vid(); wb_attribute a = m_session.attribute( oid, "SysBody", "Modified"); if ( !a) { m_sts = a.sts(); return; } a.value( &modtime); if ( !a) { m_sts = a.sts(); return; } cdh_ToLower( vname, m_session.name()); sprintf( fname, "$pwrp_load/%s.dbs", vname); dcli_translate_filename( fname, fname); m_sts = dcli_file_time( fname, &dbs_time); // Get time for classvolumes wb_merep *merep = ((wb_vrep *)m_session)->merep(); pwr_tTime mtime = pwr_cNTime; pwr_tTime t; pwr_tStatus sts; for ( wb_mvrep *mvrep = merep->volume( &sts); ODD(sts); mvrep = merep->nextVolume( &sts, mvrep->vid())) { mvrep->time( &t); if ( time_Acomp( &t, &mtime) == 1) mtime = t; } if ( opt.force || opt.manual || evenSts() || time_Acomp( &modtime, &dbs_time) == 1 || time_Acomp( &mtime, &dbs_time) == 1 || plcsts != PWRB__NOBUILT) { m_sts = lfu_create_loadfile( (ldh_tSession *) &m_session); if ( evenSts()) return; m_sts = ldh_CreateLoadFile( (ldh_tSession *) &m_session); if ( evenSts()) return; sprintf( msg, "Build: Volume Loadfiles created volume %s", m_session.name()); MsgWindow::message('I', msg, msgw_ePop_No); wb_log::log( &m_session, wlog_eCategory_VolumeBuild, m_session.vid()); sumsts = PWRB__SUCCESS; } else m_sts = sumsts; cdh_uVolumeId uvid; uvid.pwr = m_session.vid(); sprintf( fname, "$pwrp_load/" load_cNameRttCrr, uvid.v.vid_3, uvid.v.vid_2, uvid.v.vid_1, uvid.v.vid_0); dcli_translate_filename( fname, fname); m_sts = dcli_file_time( fname, &rtt_time); if ( opt.crossref && ( evenSts() || time_Acomp( &modtime, &rtt_time) == 1)) { strcpy( cmd, "create crossreferencefiles"); m_wnav->command( cmd); if ( ODD(sumsts)) sumsts = PWRB__SUCCESS; sprintf( msg, "Build: Volume Crossreference file generated volume %s", m_session.name()); MsgWindow::message('I', msg, msgw_ePop_No); } m_sts = sumsts; }
int wb_dbms_env::open(void) { char var[32]; char value[32]; char buf[512]; char *s; char *valp; int rc; cdh_ToLower(m_fileName, m_fileName); sprintf(buf, "%s/%s", m_fileName, "connection.dmsql"); FILE *fp = fopen(buf, "r"); if (fp == NULL) { printf("** Cannot open file: %s, %s\n", buf, strerror(errno)); return errno; } while ((s = fgets(buf, sizeof(buf) - 1, fp))) { if (*s == '#') continue; rc = sscanf(s, " %[A-Z_] %*[^ ] %s", var, value); if (rc < 1) continue; if (rc == 1) valp = 0; else valp = value; if (strcmp(valp, "(null)") == 0) valp = 0; if (strcmp(var, "HOST") == 0) { host(valp); } else if (strcmp(var, "USER") == 0) { user(valp); } else if (strcmp(var, "PASSWD") == 0) { passwd(valp); } else if (strcmp(var, "DB_NAME") == 0) { dbName(valp); } else if (strcmp(var, "PORT") == 0) { if (valp == 0) port(0); else port(atoi(valp)); } else if (strcmp(var, "SOCKET") == 0) { socket(valp); } else { printf("Unknown connection parameter! : %s\n", var); } } fclose(fp); m_exists = true; return 0; }
void wb_build::node( char *nodename, void *volumelist, int volumecnt) { lfu_t_volumelist *vlist = (lfu_t_volumelist *)volumelist; pwr_tTime vtime; pwr_tTime btime; pwr_tFileName fname; pwr_tObjName vname; int bussid = -1; int rebuild = 1; pwr_tStatus status; char currentnode[80]; char node[80]; pwr_tStatus sumsts; printf( "-- Build node %s\n", nodename); wb_log::push(); if ( !opt.manual) { // Check if there is any new dbsfile rebuild = 0; for ( int i = 0; i < volumecnt; i++) { if ( cdh_NoCaseStrcmp( nodename, vlist[i].p1) == 0) { if ( bussid == -1) { char systemname[80], systemgroup[80]; pwr_tVid *vl; pwr_tString40 *vnl; int vcnt; // Get time for current bootfile status = sscanf( vlist[i].p3, "%d", &bussid); if ( status != 1) { // Bussid error } sprintf( fname, load_cNameBoot, load_cDirectory, vlist[i].p2, bussid); cdh_ToLower( fname, fname); dcli_translate_filename( fname, fname); status = lfu_ReadBootFile( fname, &btime, systemname, systemgroup, &vl, &vnl, &vcnt, 0, 0); if ( EVEN(status)) { rebuild = 1; } strcpy( node, vlist[i].p2); } if ( vlist[i].volume_id == m_session.vid()) { // Build current volume volume(); if ( evenSts()) return; } cdh_ToLower( vname, vlist[i].volume_name); if ( vlist[i].volume_id >= cdh_cUserVolMin && vlist[i].volume_id <= cdh_cUserVolMax) { sprintf( fname, "$pwrp_load/%s.dbs", vname); dcli_translate_filename( fname, fname); m_sts = dcli_file_time( fname, &vtime); if ( evenSts()) { // Dbs file is missing char msg[200]; sprintf( msg, "Loadfile for volume %s not created", vname); MsgWindow::message('E', msg, msgw_ePop_Yes); return; } if ( vtime.tv_sec > btime.tv_sec) rebuild = 1; } } } } wb_log::pull(); if ( m_wnav && m_wnav->ldhses) { wb_erep *erep = *(wb_env *)ldh_SessionToWB( m_wnav->ldhses); erep->checkVolumes( &m_sts, nodename); if ( evenSts()) return; } if ( opt.force || opt.manual || rebuild) { m_sts = lfu_create_bootfile( nodename, (lfu_t_volumelist *)volumelist, volumecnt, opt.debug); if ( ODD(m_sts)) wb_log::log( wlog_eCategory_NodeBuild, nodename, 0); } else m_sts = PWRB__NOBUILT; sumsts = m_sts; syi_NodeName( &m_sts, currentnode, sizeof(currentnode)); // if ( cdh_NoCaseStrcmp( node, currentnode) == 0) { pwr_tFileName src_fname, dest_fname; pwr_tCmd cmd; pwr_tTime dest_time, src_time; // Copy xtt_help.dat from $pwrp_cnf to $pwrp_exe sprintf( src_fname, "$pwrp_cnf/%s/xtt_help.dat", node); dcli_translate_filename( src_fname, src_fname); m_sts = dcli_file_time( src_fname, &src_time); if ( evenSts()) { strcpy( src_fname, "$pwrp_cnf/xtt_help.dat"); dcli_translate_filename( src_fname, src_fname); m_sts = dcli_file_time( src_fname, &src_time); if ( evenSts()) { char msg[200]; sprintf( msg, "File is missing $pwrp_cnf/xtt_help.dat"); MsgWindow::message('E', msg, msgw_ePop_Yes); } } if ( oddSts()) { strcpy( dest_fname, "$pwrp_exe/xtt_help.dat"); dcli_translate_filename( dest_fname, dest_fname); m_sts = dcli_file_time( dest_fname, &dest_time); if ( opt.force || evenSts() || src_time.tv_sec > dest_time.tv_sec) { sprintf( cmd, "cp %s %s", src_fname, dest_fname); system( cmd); sprintf( cmd, "Build: Copy %s -> $pwrp_exe", src_fname); MsgWindow::message( 'I', cmd, msgw_ePop_No); m_sts = PWRB__SUCCESS; } else m_sts = PWRB__NOBUILT; } if ( sumsts == PWRB__NOBUILT && m_sts != PWRB__NOBUILT) sumsts = m_sts; // Copy pwrp_alias.dat from $pwrp_cnf to $pwrp_load sprintf( src_fname, "$pwrp_cnf/%s/pwrp_alias.dat", node); dcli_translate_filename( src_fname, src_fname); m_sts = dcli_file_time( src_fname, &src_time); if ( evenSts()) { strcpy( src_fname, "$pwrp_cnf/pwrp_alias.dat"); dcli_translate_filename( src_fname, src_fname); m_sts = dcli_file_time( src_fname, &src_time); } if ( oddSts()) { strcpy( dest_fname, "$pwrp_load/pwrp_alias.dat"); dcli_translate_filename( dest_fname, dest_fname); m_sts = dcli_file_time( dest_fname, &dest_time); if ( opt.force || evenSts() || src_time.tv_sec > dest_time.tv_sec) { sprintf( cmd, "cp %s %s", src_fname, dest_fname); system( cmd); sprintf( cmd, "Build: Copy %s -> $pwrp_load", src_fname); MsgWindow::message( 'I', cmd, msgw_ePop_No); m_sts = PWRB__SUCCESS; } else m_sts = PWRB__NOBUILT; } else m_sts = PWRB__NOBUILT; if ( sumsts == PWRB__NOBUILT && m_sts != PWRB__NOBUILT) sumsts = m_sts; // Copy ld_appl_...txt from $pwrp_cnf to $pwrp_load sprintf( src_fname, load_cNameAppl, "$pwrp_cnf", cdh_Low(node), bussid); dcli_translate_filename( src_fname, src_fname); m_sts = dcli_file_time( src_fname, &src_time); if ( evenSts()) { char dir[80]; strcpy( dir, "$pwrp_cnf/"); sprintf( src_fname, load_cNameAppl, dir, cdh_Low(node), bussid); dcli_translate_filename( src_fname, src_fname); m_sts = dcli_file_time( src_fname, &src_time); } if ( oddSts()) { sprintf( dest_fname, load_cNameAppl, "$pwrp_load/", cdh_Low(node), bussid); dcli_translate_filename( dest_fname, dest_fname); m_sts = dcli_file_time( dest_fname, &dest_time); if ( opt.force || evenSts() || src_time.tv_sec > dest_time.tv_sec) { sprintf( cmd, "cp %s %s", src_fname, dest_fname); system( cmd); sprintf( cmd, "Build: %s -> $pwrp_load", src_fname); MsgWindow::message( 'I', cmd, msgw_ePop_No); m_sts = PWRB__SUCCESS; } else m_sts = PWRB__NOBUILT; } else m_sts = PWRB__NOBUILT; if ( sumsts == PWRB__NOBUILT && m_sts != PWRB__NOBUILT) sumsts = m_sts; } if ( sumsts != PWRB__NOBUILT) { char msg[200]; sprintf( msg, "Build: Node %s", nodename); MsgWindow::message('I', msg, msgw_ePop_No); } m_sts = sumsts; }
static pwr_tStatus OpenDb ( ldh_sMenuCall *ip ) { #ifdef OS_VMS int size; char *db_id; int sts; char name[80]; static char cmd[100]; $DESCRIPTOR(cmd_desc,cmd); unsigned long cli_flag = CLI$M_NOWAIT; sts = ldh_GetObjectPar( ip->PointedSession, ip->Pointed.Objid, "RtBody", "Id", (char **) &db_id, &size); if (EVEN(sts)) return sts; sts = ldh_ObjidToName ( ip->PointedSession, ip->Pointed.Objid, ldh_eName_Object, name, sizeof(name), &size); if ( EVEN(sts)) return sts; sprintf( cmd, "@pwr_exe:wb_open_db \"%s\" \"%s\" \"%s\" \"\" \"%s\"", db_id, CoLogin::username(), CoLogin::uspassword(), name); free( db_id); sts = lib$spawn (&cmd_desc , 0 , 0 , &cli_flag ); if (EVEN(sts)) { printf("-- Error when creating subprocess.\n"); return sts; } #else int size; char *db_id_p; char db_id[80]; int sts; char name[80]; char filename[80]; char cmd[100]; sts = ldh_GetObjectPar( ip->PointedSession, ip->Pointed.Objid, "RtBody", "Id", (char **) &db_id_p, &size); if (EVEN(sts)) return sts; sts = ldh_ObjidToName ( ip->PointedSession, ip->Pointed.Objid, ldh_eName_Object, name, sizeof(name), &size); if ( EVEN(sts)) return sts; dcli_translate_filename( filename, "$pwr_exe/wb_open_db.sh"); cdh_ToLower( db_id, db_id_p); sprintf( cmd, "%s \"%s\" \"%s\" \"%s\" \"\" \"%s\" &", filename, db_id, CoLogin::username(), CoLogin::ucpassword(), name); free( db_id_p); sts = system( cmd); if ( sts == -1 || sts == 127) { printf("-- Error when creating process.\n"); return sts; } #endif return 1; }
int CnvWblToHtml::typedef_exec() { pwr_tFileName fname; int i; pwr_tFileName html_file_name; char full_class_name[80]; char ref_name[200]; pwr_tFileName struct_file; char low_volume_name[80]; char low_class_name[80]; char txt[200]; char code_aref[200]; int lng_sts = 1; if ( Lng::current() != lng_eLanguage_en_US) lng_sts = ctx->rw->read_lng( ctx->rw->typedef_name, 0); strcpy( ctx->rw->class_name, ctx->rw->typedef_name); cdh_ToLower( low_volume_name, ctx->rw->volume_name); cdh_ToLower( low_class_name, ctx->rw->class_name); CnvWblToH::get_filename( ctx->rw, fname, 0); CnvReadSrc::filename_to_html( struct_file, fname); strcpy( full_class_name, ctx->rw->volume_name); strcat( full_class_name, ":"); strcat( full_class_name, ctx->rw->class_name); strcpy( html_file_name, low_volume_name); strcat( html_file_name, "_"); strcat( html_file_name, low_class_name); // Add into index file fp_html_index << "<A HREF=\"" << html_file_name << ".html\" TARGET=\"classFrame\">" << ctx->rw->class_name << "</A>" << endl << "<BR>" << endl; // Add into AllClasses js file cnv_mentry mentry; strcpy( mentry.name, ctx->rw->class_name); strcpy( mentry.file, html_file_name); strcat( mentry.file, ".html"); all_types.push_back( mentry); // Add into group file for ( int i = 0; i < ctx->rw->doc_group_cnt; i++) { for ( int j = 0; j < ctx->setup->group_cnt; j++) { if ( cdh_NoCaseStrcmp( ctx->rw->doc_groups[i], ctx->setup->groups[j]) == 0) { fp_html_group[j] << "<A HREF=\"" << html_file_name << ".html\" TARGET=\"classFrame\">" << ctx->rw->class_name << "</A>" << endl << "<BR>" << endl; if ( !js_group_first[j]) fp_js_group[j] << ","; else js_group_first[j] = false; fp_js_group[j] << "[\"" << ctx->rw->class_name << "\",\"" << html_file_name << ".html\"]" << endl; } } } // Create class html file strcpy( fname, ctx->dir); strcat( fname, html_file_name); strcat( fname, ".html"); cdh_ToLower( fname, fname); html_clf = new CnvFile(); html_clf->f.open( fname); fp_tmp.open( cread_cTmpFile1); html_class_open = 1; html_clf->f << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Frameset//EN\"\"http://www.w3.org/TR/REC-html40/frameset.dtd\">" << endl << "<!-- Generated by pwr_cnv-->" << endl << "<HTML>" << endl << "<HEAD>" << endl << "<META http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">" << endl << "<TITLE>" << endl << ": Type " << full_class_name << endl << "</TITLE>" << endl << "<link rel=\"stylesheet\" type=\"text/css\" href=\"orm.css\">" << endl << "</HEAD>" << endl << "<BODY BGCOLOR=\"white\">" << endl << "" << endl << "<!-- ========== START OF NAVBAR ========== -->" << endl << "<A NAME=\"navbar_top\"><!-- --></A>" << endl << "<TABLE BORDER=\"0\" WIDTH=\"100%\" CELLPADDING=\"1\" CELLSPACING=\"0\">" << endl << "<TR>" << endl << "<TD COLSPAN=2 BGCOLOR=\"#EEEEFF\" CLASS=\"NavBarCell1\">" << endl << "<A NAME=\"navbar_top_firstrow\"><FONT CLASS=\"NavBarFont1Rev\"><B>Volume " << ctx->rw->volume_name << "</B></FONT></A>" << endl << "</TD>" << endl << "</TR>" << endl << endl << "<TR>" << endl << "<TD BGCOLOR=\"white\" CLASS=\"NavBarCell2\"><FONT SIZE=\"-2\">" << endl; if ( (strcmp( ctx->rw->typedef_typeref, "Mask") == 0 || strcmp( ctx->rw->typedef_typeref, "Enum") == 0) && strcmp( low_volume_name, "pwrs") != 0) { sprintf( code_aref, "%s#%s", struct_file, ctx->rw->typedef_name); html_clf->f << " C Binding: <A HREF=\"" << code_aref << "\">Typedef</A>" << endl; } else if ( ctx->rw->doc_fresh && strcmp( ctx->rw->doc_code, "") != 0) { CnvReadSrc::filename_to_html( ref_name, ctx->rw->doc_code); sprintf( code_aref, "%s#%s", ref_name, low_class_name); html_clf->f << " C Binding: <A HREF=\"" << code_aref << "\">Typedef</A>" << endl; } for ( i = 0; i < 50; i++) html_clf->f << " "; html_clf->f << "</FONT></TD>" << endl << "<TD BGCOLOR=\"white\" CLASS=\"NavBarCell2\"><FONT SIZE=\"-2\">" << endl << " <A HREF=\"" << low_volume_name << "_index.html\" TARGET=\"_top\"><B>INDEX</B></A> " << endl << " <A HREF=\"" << html_file_name << ".html\" TARGET=\"_top\"><B>NO INDEX</B></A></FONT></TD>" << endl << "</TR>" << endl << "</TABLE>" << endl << "<!-- =========== END OF NAVBAR =========== -->" << endl << endl << "<HR>" << endl << "<!-- ======== START OF CLASS DATA ======== -->" << endl << "<H2>" << endl << "Type " << ctx->rw->class_name << "</H2>" << endl << "<HR>" << endl << "<DL>" << endl; if ( ctx->rw->doc_fresh && strcmp( ctx->rw->doc_author, "") != 0) { html_clf->f << "<DT><B>Author</B> " << ctx->rw->doc_author << "<DT>" << endl; } if ( ctx->rw->doc_fresh && strcmp( ctx->rw->doc_version, "") != 0) { html_clf->f << "<DT><B>Version</B> " << ctx->rw->doc_version << "<DT>" << endl; } if ( ctx->rw->doc_fresh && strcmp( ctx->rw->doc_code, "") != 0) { html_clf->f << "<DT><B>Code</B> " << ctx->rw->doc_code << "<DT>" << endl; } html_clf->f << "<BR><DT><B>Description</B><DT><BR>" << endl << "</DL><DIV ID=\"description\"><XMP>" << endl; if ( ctx->rw->doc_fresh) { for ( i = 0; i < ctx->rw->doc_cnt; i++) { ctx->remove_spaces( ctx->rw->doc_text[i], txt); if ( strncmp( CnvCtx::low(txt), "@image", 6) == 0) { char imagefile[80]; ctx->remove_spaces( txt + 6, imagefile); html_clf->f << "</XMP><IMG SRC=\"" << imagefile << "\"><XMP>" << endl; } else if ( strncmp( CnvCtx::low(txt), "@b", 2) == 0) { html_clf->f << "</XMP><B><FONT SIZE=\"3\">" << txt + 2 << "</FONT></B><BR><XMP>" << endl; } else if ( strncmp( CnvCtx::low(txt), "@h1", 3) == 0) { html_clf->f << "</XMP><H3>" << txt + 3 << "</H3><BR><XMP>" << endl; } else if ( strncmp( CnvCtx::low(txt), "@h2", 3) == 0) { html_clf->f << "</XMP><H4>" << txt + 3 << "</H4><BR><XMP>" << endl; } else html_clf->f << ctx->rw->doc_text[i] << endl; } } html_clf->f << "</XMP></DIV>" << endl; for ( i = 0; i < ctx->rw->doc_link_cnt; i++) { html_clf->f << " <A HREF=\"" << ctx->rw->doc_link_ref[i] << "\" TARGET=\"_self\"><FONT size=\"-1\"> " << ctx->rw->doc_link_text[i] <<"</FONT></A><BR>" << endl; } for ( i = 0; i < ctx->rw->doc_clink_cnt; i++) { html_clf->f << " <A HREF=\"" << ctx->rw->doc_clink_ref[i] << "\" TARGET=\"_self\"><FONT size=\"-1\"> " << ctx->rw->doc_clink_text[i] <<"</FONT></A><BR>" << endl; } html_clf->f << "</FONT>" << endl; if ( strcmp( ctx->rw->typedef_typeref, "Mask") == 0 || strcmp( ctx->rw->typedef_typeref, "Enum") == 0) { char bitchar = _tolower(ctx->rw->typedef_typeref[0]); html_clf->f << "<HR><BR>" << endl << "<A NAME=\"" << ctx->rw->typedef_name << "\"><!-- --></A>" << endl << "<TABLE BORDER=\"1\" CELLPADDING=\"3\" CELLSPACING=\"0\" WIDTH=\"100%\">" << endl << "<TR BGCOLOR=\"#CCCCFF\" CLASS=\"TableHeadingColor\">" << endl << "<TD COLSPAN=3><FONT SIZE=\"+2\">" << endl << "<B>" << ctx->rw->typedef_name << " elements</B></FONT>" << "<FONT SIZE=\"+1\"<B> <A HREF=\"" << code_aref << "\">pwr_" << bitchar << ctx->rw->typedef_name << "</A></B></FONT></TD>" << endl << "</TR>" << endl; } return 1; }
int CnvWblToHtml::class_exec() { pwr_tFileName fname; int i; pwr_tFileName html_file_name; pwr_tFileName ctree_file; char full_class_name[80]; char ref_name[200]; pwr_tFileName struct_file; pwr_tFileName hpp_file; char low_volume_name[80]; char low_class_name[80]; char txt[200]; char timestr[80]; int lng_sts = 1; cdp_created = false; if ( Lng::current() != lng_eLanguage_en_US) lng_sts = ctx->rw->read_lng( ctx->rw->class_name, 0); time_AtoAscii( 0, time_eFormat_DateAndTime, timestr, sizeof(timestr)); cdh_ToLower( low_volume_name, ctx->rw->volume_name); cdh_ToLower( low_class_name, ctx->rw->class_name); CnvWblToH::get_filename( ctx->rw, fname, 0); CnvReadSrc::filename_to_html( struct_file, fname); ctx->hpp = 1; CnvWblToH::get_filename( ctx->rw, fname, 1); CnvReadSrc::filename_to_html( hpp_file, fname); ctx->hpp = 0; strcpy( full_class_name, ctx->rw->volume_name); strcat( full_class_name, ":"); strcat( full_class_name, ctx->rw->class_name); strcpy( html_file_name, low_volume_name); strcat( html_file_name, "_"); strcat( html_file_name, low_class_name); strcpy( ctree_file, low_volume_name); strcat( ctree_file, "_"); strcat( ctree_file, low_class_name); strcat( ctree_file, "_ctree.html"); // Add into index file fp_html_index << "<A HREF=\"" << html_file_name << ".html\" TARGET=\"classFrame\">" << ctx->rw->class_name << "</A>" << endl << "<BR>" << endl; cnv_mentry mentry; strcpy( mentry.name, ctx->rw->class_name); strcpy( mentry.file, html_file_name); strcat( mentry.file, ".html"); all_classes.push_back( mentry); // Add into group file for ( int i = 0; i < ctx->rw->doc_group_cnt; i++) { for ( int j = 0; j < ctx->setup->group_cnt; j++) { if ( cdh_NoCaseStrcmp( ctx->rw->doc_groups[i], ctx->setup->groups[j]) == 0) { fp_html_group[j] << "<A HREF=\"" << html_file_name << ".html\" TARGET=\"classFrame\">" << ctx->rw->class_name << "</A>" << endl << "<BR>" << endl; if ( !js_group_first[j]) fp_js_group[j] << ","; else js_group_first[j] = false; fp_js_group[j] << "[\"" << ctx->rw->class_name << "\",\"" << html_file_name << ".html\"]" << endl; } } } // Create class html file strcpy( fname, ctx->dir); strcat( fname, html_file_name); strcat( fname, ".html"); cdh_ToLower( fname, fname); html_clf = new CnvFile(); html_clf->f.open( fname); fp_tmp.open( cread_cTmpFile1); fp_tmp << "<HR><BR>" << endl << "<A NAME=\"detail\"><H1>Attributes detail</H1></A>" << endl; html_class_open = 1; html_clf->f << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Frameset//EN\"\"http://www.w3.org/TR/REC-html40/frameset.dtd\">" << endl << "<!-- Generated by co_convert " << timestr << " -->" << endl << "<HTML>" << endl << "<HEAD>" << endl << "<META http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">" << endl << "<TITLE>" << endl << " Class " << full_class_name << endl << "</TITLE>" << endl << "<link rel=\"stylesheet\" type=\"text/css\" href=\"orm.css\">" << endl << "</HEAD>" << endl << "<BODY BGCOLOR=\"white\">" << endl << "" << endl << "<!-- ========== START OF NAVBAR ========== -->" << endl << "<A NAME=\"navbar_top\"><!-- --></A>" << endl << "<TABLE BORDER=\"0\" WIDTH=\"100%\" CELLPADDING=\"1\" CELLSPACING=\"0\">" << endl << "<TR>" << endl << "<TD COLSPAN=2 BGCOLOR=\"#EEEEFF\" CLASS=\"NavBarCell1\">" << endl << "<A NAME=\"navbar_top_firstrow\"><FONT CLASS=\"NavBarFont1Rev\"><B>Volume " << ctx->rw->volume_name << "</B></FONT></A>" << endl << "</TD>" << endl << "</TR>" << endl << endl << "<TR>" << endl << "<TD BGCOLOR=\"white\" CLASS=\"NavBarCell2\"><FONT SIZE=\"-2\">" << endl << " Attributes: <A HREF=\"#RtBody\">Runtime</A>" << endl << " | <A HREF=\"#DevBody\">Development</A>" << endl << " | <A HREF=\"#SysBody\">System</A>" << endl << " | <A HREF=\"#template\">Template</A>" << endl << " | <A HREF=\"#detail\">Detail</A>" << endl << " C Binding: " << endl << " <A HREF=\"" << struct_file << "#" << ctx->rw->class_name << "\">Struct</A>" << endl << " | <A HREF=\"" << hpp_file << "#" << ctx->rw->class_name << "\">Class</A>" << endl; if ( ctx->rw->doc_fresh && strcmp( ctx->rw->doc_code, "") != 0) { if ( strstr( ctx->rw->doc_code, ".pdf") != 0) { strcpy( ref_name, ctx->rw->doc_code); html_clf->f << " | <A HREF=\"" << ref_name << "\">Code</A>" << endl; } else { CnvReadSrc::filename_to_html( ref_name, ctx->rw->doc_code); html_clf->f << " | <A HREF=\"" << ref_name << "#" << low_class_name << "\">Code</A>" << endl; } } html_clf->f << "  <A HREF=\"" << ctree_file << "\">ClassTree</A>" << endl; html_clf->f << "</FONT></TD>" << endl << "<TD BGCOLOR=\"white\" CLASS=\"NavBarCell2\"><FONT SIZE=\"-2\">" << endl << " <A HREF=\"" << low_volume_name << "_index.html\" TARGET=\"_top\"><B>INDEX</B></A> " << endl << " <A HREF=\"" << html_file_name << ".html\" TARGET=\"_top\"><B>NO INDEX</B></A></FONT></TD>" << endl << "</TR>" << endl << "</TABLE>" << endl << "<!-- =========== END OF NAVBAR =========== -->" << endl << endl << "<HR>" << endl << "<!-- ======== START OF CLASS DATA ======== -->" << endl << "<H2>" << endl << "Class " << ctx->rw->class_name << "</H2>" << endl << "<HR>" << endl << "<DL>" << endl; if ( ctx->rw->doc_fresh && strcmp( ctx->rw->doc_author, "") != 0) { html_clf->f << "<DT><B>" << Lng::translate("Author") << "</B> " << ctx->rw->doc_author << "<DT>" << endl; } if ( ctx->rw->doc_fresh && strcmp( ctx->rw->doc_creator, "") != 0) { html_clf->f << "<DT><B>" << Lng::translate("Creator") << "</B> " << ctx->rw->doc_creator << "<DT>" << endl; } if ( ctx->rw->doc_fresh && (strcmp( ctx->rw->doc_version, "") != 0 || strcmp( ctx->rw->class_version, "") != 0)) { html_clf->f << "<DT><B>" << Lng::translate("Version") << "</B> "; if ( strcmp( ctx->rw->doc_version, "") != 0) html_clf->f << ctx->rw->doc_version << " "; if (strcmp( ctx->rw->class_version, "") != 0) html_clf->f << ctx->rw->class_version; html_clf->f << "<DT>" << endl; } if ( ctx->rw->doc_fresh && strcmp( ctx->rw->doc_code, "") != 0) { if ( strstr( ctx->rw->doc_code, ".pdf") != 0) { html_clf->f << "<DT><B>" << Lng::translate("Code") << "</B> <A HREF=\"" << ref_name << "\"><FONT size=\"-1\">PlcTemplate</FONT></A><DT>" << endl; } else { html_clf->f << "<DT><B>" << Lng::translate("Code") << "</B> <A HREF=\"" << ref_name << "#" << low_class_name << "\"><FONT size=\"-1\">" << ctx->rw->doc_code << "</FONT></A><DT>" << endl; } } html_clf->f << "<BR><DT><B>" << Lng::translate("Description") << "</B><DT><BR>" << endl << "</DL><DIV ID=\"description\"><XMP>" << endl; if ( ctx->rw->doc_fresh) { for ( i = 0; i < ctx->rw->doc_cnt; i++) { ctx->remove_spaces( ctx->rw->doc_text[i], txt); if ( strncmp( CnvCtx::low(txt), "@image", 6) == 0) { char imagefile[80]; ctx->remove_spaces( txt + 6, imagefile); html_clf->f << "</XMP><IMG SRC=\"" << imagefile << "\"><XMP>" << endl; } else if ( strncmp( CnvCtx::low(txt), "@b", 2) == 0) { html_clf->f << "</XMP><B><FONT SIZE=\"3\">" << txt + 2 << "</FONT></B><BR><XMP>" << endl; } else if ( strncmp( CnvCtx::low(txt), "@h1", 3) == 0) { html_clf->f << "</XMP><H3>" << txt + 3 << "</H3><BR><XMP>" << endl; } else if ( strncmp( CnvCtx::low(txt), "@h2", 3) == 0) { html_clf->f << "</XMP><H4>" << txt + 3 << "</H4><BR><XMP>" << endl; } else html_clf->f << ctx->rw->doc_text[i] << endl; } } html_clf->f << "</XMP>" << endl; for ( i = 0; i < ctx->rw->doc_xlink_cnt; i++) { html_clf->f << " <A HREF=\"" << ctx->rw->doc_xlink_ref[i] << "\" TARGET=\"_self\"><FONT size=\"-1\"> " << ctx->rw->doc_xlink_text[i] <<"</FONT></A><BR>" << endl; } for ( i = 0; i < ctx->rw->doc_clink_cnt; i++) { html_clf->f << " <A HREF=\"" << ctx->rw->doc_clink_ref[i] << "\" TARGET=\"_self\"><FONT size=\"-1\"> " << ctx->rw->doc_clink_text[i] <<"</FONT></A><BR>" << endl; } for ( i = 0; i < ctx->rw->doc_link_cnt; i++) { html_clf->f << " <A HREF=\"" << ctx->rw->doc_link_ref[i] << "\" TARGET=\"_self\"><FONT size=\"-1\"> " << ctx->rw->doc_link_text[i] <<"</FONT></A><BR>" << endl; } html_clf->f << "</DIV>" << endl; return 1; }
int CnvWblToHtml::close() { fp_html_index << "</FONT></TD>" << endl << "</TR>" << endl << "</TABLE>" << endl << "" << endl << "</BODY>" << endl << "</HTML>" << endl; fp_html_index.close(); print_all_menu(); fp_js_all << "])" << endl << "}" << endl; fp_js_all.close(); for ( int i = 0; i < ctx->setup->group_cnt; i++) { fp_html_group[i] << "</FONT></TD>" << endl << "</TR>" << endl << "</TABLE>" << endl << "" << endl << "</BODY>" << endl << "</HTML>" << endl; fp_html_group[i].close(); fp_js_group[i] << "])" << endl << "}" << endl; fp_js_group[i].close(); } #if 0 { char fname[200]; strcpy( fname, ctx->dir); strcat( fname, "index.jsm"); cdh_ToLower( fname, fname); ofstream fp( fname); fp << " aux = insFld(foldersTree, gFld(\"<b>pwrs</b>\",\"pwrs_index.html\"))" << endl << " pwrs_index(aux)" << endl << " aux = insFld(foldersTree, gFld(\"<b>pwrb</b>\",\"pwrb_index.html\"))" << endl << " pwrb_index(aux)" << endl << " aux = insFld(foldersTree, gFld(\"<b>nmps</b>\",\"nmps_index.html\"))" << endl << " nmps_index(aux)" << endl << " aux = insFld(foldersTree, gFld(\"<b>ssab</b>\",\"ssab_index.html\"))" << endl << " ssab_index(aux)" << endl << " aux = insFld(foldersTree, gFld(\"<b>tlog/b>\",\"tlog_index.html\"))" << endl << " tlog_index(aux)" << endl; fp.close(); } #endif char cmd[600]; snprintf( cmd, sizeof(cmd), "if [ -e %s/../../orm_menu.js ]; then cat %s/*.jsf %s/../../orm_menu.js > %s/menu.js; fi", ctx->dir, ctx->dir, ctx->dir, ctx->dir); system( cmd); return 1; }
void wb_build::classvolume( pwr_tVid vid) { pwr_tCmd cmd; pwr_tFileName fname; pwr_tObjName name; pwr_tTime wbl_time, dbs_time, h_time; pwr_tStatus fsts; pwr_tStatus sumsts = PWRB__NOBUILT; wb_log::push(); if ( !opt.manual) { // Build all ClassDef classlist( pwr_eClass_ClassDef); if ( evenSts()) return; if ( sumsts == PWRB__NOBUILT && m_sts != PWRB__NOBUILT) sumsts = m_sts; } wb_log::pull(); if ( vid == 0) { // Build current volume cdh_ToLower( name, m_session.name()); } else { wb_env env = m_session.env(); wb_volume v = env.volume(vid); if ( !v) { m_sts = v.sts(); return; } strcpy( name, v.name()); } // Get time for wb_load file sprintf( fname, "$pwrp_db/%s.wb_load", name); dcli_translate_filename( fname, fname); m_sts = dcli_file_time( fname, &wbl_time); if ( evenSts()) return; // Get time for dbs file sprintf( fname, "$pwrp_load/%s.dbs", name); dcli_translate_filename( fname, fname); fsts = dcli_file_time( fname, &dbs_time); // Get time for classvolumes wb_merep *merep = ((wb_erep *)m_session.env())->merep(); pwr_tTime mtime = pwr_cNTime; pwr_tTime t; pwr_tStatus sts; for ( wb_mvrep *mvrep = merep->volume( &sts); ODD(sts); mvrep = merep->nextVolume( &sts, mvrep->vid())) { if ( m_session.vid() == mvrep->vid()) continue; // Check only system class and manufact class volumes if ( mvrep->vid() > cdh_cSystemClassVolMax && (mvrep->vid() < cdh_cManufactClassVolMin || mvrep->vid() > cdh_cManufactClassVolMax)) continue; mvrep->time( &t); if ( time_Acomp( &t, &mtime) == 1) mtime = t; } // Create new loadfile if ( opt.force || EVEN(fsts) || wbl_time.tv_sec > dbs_time.tv_sec || mtime.tv_sec > dbs_time.tv_sec) { sprintf( cmd, "create snapshot/file=\"$pwrp_db/%s.wb_load\"", name); m_sts = m_wnav->command( cmd); sumsts = m_sts; } else m_sts = sumsts; // Get time for struct file sprintf( fname, "$pwrp_inc/pwr_%sclasses.h", name); dcli_translate_filename( fname, fname); fsts = dcli_file_time( fname, &h_time); // Create new struct file if ( opt.force || EVEN(fsts) || wbl_time.tv_sec > h_time.tv_sec) { sprintf( cmd, "create struct/file=\"$pwrp_db/%s.wb_load\"", name); m_sts = m_wnav->command( cmd); sumsts = m_sts; } else m_sts = sumsts; if ( sumsts != PWRB__NOBUILT) { char msg[80]; sprintf( msg, "Build: Volume %s", name); MsgWindow::message('I', msg, msgw_ePop_No); } }
int CnvWblToHtml::init( char *first) { pwr_tFileName fname; pwr_tFileName gname; char allclasses_name[80]; char timestr[80]; time_AtoAscii( 0, time_eFormat_DateAndTime, timestr, sizeof(timestr)); strcpy( html_first, ctx->rw->volume_name); strcat( html_first, "_"); strcat( html_first, first); cdh_ToLower( html_first, html_first); strcpy( allclasses_name, ctx->rw->volume_name); strcat( allclasses_name, "_allclasses.html"); cdh_ToLower( allclasses_name, allclasses_name); // Create index file { strcpy( fname, ctx->dir); strcat( fname, ctx->rw->volume_name); strcat( fname, "_index.html"); cdh_ToLower( fname, fname); ofstream fp( fname); // Get group menu name if ( ctx->setup->group_cnt) { strcpy( gname, CnvCtx::low(ctx->rw->volume_name)); strcat( gname, "_menu_group.html"); cdh_ToLower( fname, fname); } fp << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"\"http://www.w3.org/TR/REC-html40/loose.dtd>" << endl << "<!-- Generated by co_convert " << timestr << " -->" << endl << "<HTML>" << endl << "<HEAD>" << endl << "<META http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">" << endl << "<TITLE>" << endl << "Class Menu" << endl << "</TITLE>" << endl << "<link rel=\"stylesheet\" type=\"text/css\" href=\"orm.css\">" << endl << "</HEAD>" << endl << "<FRAMESET cols=\"20%,80%\">" << endl; if ( ctx->setup->group_cnt) fp << "<FRAMESET rows=\"20%,80%\">" << endl << "<FRAME src=\"" << gname << "\" name=\"groupFrame\">" << endl << "<FRAME src=\"" << allclasses_name << "\" name=\"menuFrame\">" << endl << "</FRAMESET>" << endl; else fp << "<FRAME src=\"" << allclasses_name << "\" name=\"menuFrame\">" << endl; fp << "<FRAME src=\"" << html_first << ".html\" name=\"classFrame\">" << endl << "</FRAMESET>" << endl << "<NOFRAMES>" << endl << "<H2>" << endl << "Frame Alert</H2>" << endl << "<P>" << endl << "This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client." << endl << "<BR>" << endl << "Link to <A HREF=\"" << html_first << ".html\">Non-frame version.</A></NOFRAMES>" << endl << "</HTML>" << endl; } // Create js index file strcpy( fname, ctx->dir); strcat( fname, ctx->rw->volume_name); strcat( fname, "_allclasses.jsf"); cdh_ToLower( fname, fname); fp_js_all.open( fname); js_all_first = true; fp_js_all << "function " << ctx->rw->volume_name << "_AllClasses( parent)" << endl << "{" << endl << "parent.addChildren([" << endl; // Create group menu file if ( ctx->setup->group_cnt) { strcpy( fname, ctx->dir); strcat( fname, gname); cdh_ToLower( fname, fname); ofstream fp( fname); fp << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Frameset//EN\"\"http://www.w3.org/TR/REC-html40/frameset.dtd\">" << endl << "<!-- Generated by co_convert " << timestr << " -->" << endl << "<HTML>" << endl << "<HEAD>" << endl << "<META http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">" << endl << "<TITLE>" << endl << "Groups" << endl << "</TITLE>" << endl << "<link rel=\"stylesheet\" type=\"text/css\" href=\"orm.css\">" << endl << "</HEAD>" << endl << "<BODY BGCOLOR=\"white\">" << endl << "<FONT size=\"+1\" CLASS=\"FrameHeadingFont\">" << endl << "<B>Groups</B></FONT>" << endl << "<BR>" << endl << "" << endl << "<TABLE BORDER=\"0\" WIDTH=\"100%\">" << endl << "<TR>" << endl << "<TD NOWRAP><FONT CLASS=\"FrameItemFont\"> " << endl; // Put index filename in fname strcpy( fname, ctx->rw->volume_name); strcat( fname, "_index.html"); cdh_ToLower( fname, fname); fp << "<A HREF=\"" << fname << "\" TARGET=\"_parent\">AllClasses</A>" << endl << "<BR>" << endl; for ( int i = 0; i < ctx->setup->group_cnt; i++) { // Put group index filename in fname strcpy( fname, ctx->rw->volume_name); strcat( fname, "_group_"); strcat( fname, ctx->setup->groups[i]); strcat( fname, "_index.html"); cdh_ToLower( fname, fname); fp << "<A HREF=\"" << fname << "\" TARGET=\"_parent\">" << ctx->setup->groups[i] << "</A>" << endl << "<BR>" << endl; } fp << "</FONT></TD>" << endl << "</TR>" << endl << "</TABLE>" << endl << "" << endl << "</BODY>" << endl << "</HTML>" << endl; } // Open allclasses file strcpy( fname, ctx->dir); strcat( fname, allclasses_name); cdh_ToLower( fname, fname); fp_html_index.open( fname); html_index_open = 1; fp_html_index << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Frameset//EN\"\"http://www.w3.org/TR/REC-html40/frameset.dtd\">" << endl << "<!-- Generated by co_convert " << timestr << " -->" << endl << "<HTML>" << endl << "<HEAD>" << endl << "<META http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">" << endl << "<TITLE>" << endl << "All Classes" << endl << "</TITLE>" << endl << "<link rel=\"stylesheet\" type=\"text/css\" href=\"orm.css\">" << endl << "</HEAD>" << endl << "<BODY BGCOLOR=\"white\">" << endl << "<FONT size=\"+1\" CLASS=\"FrameHeadingFont\">" << endl << "<B>All Classes</B></FONT>" << endl << "<BR>" << endl << "" << endl << "<TABLE BORDER=\"0\" WIDTH=\"100%\">" << endl << "<TR>" << endl << "<TD NOWRAP><FONT CLASS=\"FrameItemFont\"> " << endl; // Open one index file for each configured group for ( int i = 0; i < ctx->setup->group_cnt; i++) { // Create index page for each group strcpy( fname, ctx->dir); strcat( fname, ctx->rw->volume_name); strcat( fname, "_group_"); strcat( fname, ctx->setup->groups[i]); strcat( fname, "_index.html"); cdh_ToLower( fname, fname); { ofstream fp( fname); // Put menu filename in fname strcpy( fname, ctx->rw->volume_name); strcat( fname, "_group_"); strcat( fname, ctx->setup->groups[i]); strcat( fname, ".html"); cdh_ToLower( fname, fname); fp << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"\"http://www.w3.org/TR/REC-html40/loose.dtd>" << endl << "<!-- Generated by co_convert " << timestr << " -->" << endl << "<HTML>" << endl << "<HEAD>" << endl << "<META http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">" << endl << "<TITLE>" << endl << "Group Menu" << endl << "</TITLE>" << endl << "<link rel=\"stylesheet\" type=\"text/css\" href=\"orm.css\">" << endl << "</HEAD>" << endl << "<FRAMESET cols=\"20%,80%\">" << endl << "<FRAMESET rows=\"20%,80%\">" << endl << "<FRAME src=\"" << gname << "\" name=\"groupFrame\">" << endl << "<FRAME src=\"" << fname << "\" name=\"menuFrame\">" << endl << "</FRAMESET>" << endl; if ( strcmp( ctx->setup->groups_startpage[i], "") == 0) fp << "<FRAME name=\"classFrame\">" << endl; else fp << "<FRAME src=\"" << ctx->setup->groups_startpage[i] << "\" name=\"classFrame\">" << endl; fp << "</FRAMESET>" << endl << "<NOFRAMES>" << endl << "<H2>" << endl << "Frame Alert</H2>" << endl << "<P>" << endl << "This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client." << endl << "<BR>" << endl << "Link to <A HREF=\"" << html_first << ".html\">Non-frame version.</A></NOFRAMES>" << endl << "</HTML>" << endl; } // Create menu page strcpy( fname, ctx->dir); strcat( fname, ctx->rw->volume_name); strcat( fname, "_group_"); strcat( fname, ctx->setup->groups[i]); strcat( fname, ".html"); cdh_ToLower( fname, fname); fp_html_group[i].open( fname); strcpy( fname, ctx->dir); strcat( fname, ctx->rw->volume_name); strcat( fname, "_group_"); strcat( fname, ctx->setup->groups[i]); strcat( fname, ".jsf"); cdh_ToLower( fname, fname); fp_js_group[i].open( fname); fp_html_group[i] << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Frameset//EN\"\"http://www.w3.org/TR/REC-html40/frameset.dtd\">" << endl << "<!-- Generated by co_convert " << timestr << " -->" << endl << "<HTML>" << endl << "<HEAD>" << endl << "<META http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">" << endl << "<TITLE>" << endl << ctx->setup->groups[i] << endl << "</TITLE>" << endl << "<link rel=\"stylesheet\" type=\"text/css\" href=\"orm.css\">" << endl << "</HEAD>" << endl << "<BODY BGCOLOR=\"white\">" << endl << "<FONT size=\"+1\" CLASS=\"FrameHeadingFont\">" << endl << "<B>" << ctx->setup->groups[i] << "</B></FONT>" << endl << "<BR>" << endl << "" << endl << "<TABLE BORDER=\"0\" WIDTH=\"100%\">" << endl << "<TR>" << endl << "<TD NOWRAP><FONT CLASS=\"FrameItemFont\"> " << endl; js_group_first[i] = true; fp_js_group[i] << "function " << ctx->rw->volume_name << "_" << ctx->setup->groups[i] << "(parent)" << endl << "{" << endl << "parent.addChildren([" << endl; } // Create js map for volume { strcpy( fname, ctx->dir); strcat( fname, ctx->rw->volume_name); strcat( fname, "_groups.jsf"); cdh_ToLower( fname, fname); ofstream fp( fname); fp << "function " << ctx->rw->volume_name << "(parent)" << endl << "{" << endl << " aux = insFld(parent, gFld(\"AllClasses\",\"" << ctx->rw->volume_name << "_index.html\"))" << endl << " " << ctx->rw->volume_name << "_AllClasses(aux)" << endl; for ( int i = 0; i < ctx->setup->group_cnt; i++) { strcpy( fname, ctx->rw->volume_name); strcat( fname, "_group_"); strcat( fname, ctx->setup->groups[i]); strcat( fname, "_index.html"); cdh_ToLower( fname, fname); fp << " aux = insFld(parent, gFld(\"" << ctx->setup->groups[i] << "\",\"" << fname << "\"))" << endl << " " << ctx->rw->volume_name << "_" << ctx->setup->groups[i] << "(aux)" << endl; } fp << "}" << endl; } return 1; }
void wb_build::webgraph( pwr_tOid oid) { pwr_tFileName dest_fname; pwr_tFileName src_fname; pwr_tCmd cmd; pwr_tString80 java_name; pwr_tString80 name; pwr_tTime dest_time, src_time; int check_hierarchy = cdh_ObjidIsNotNull( m_hierarchy); int hierarchy_found = 0; int is_frame, is_applet; char jname[80]; pwr_tStatus fsts; int jexport; int found; pwr_tFileName found_file, file_spec; pwr_tFileName graph_name, dir; char dev[80], type[80]; int version; pwr_tString80 appletsignature = ""; char *s; wb_object o = m_session.object(oid); if ( !o) { m_sts = o.sts(); return; } // Check that no ancestor is a LibHier for ( wb_object p = o.parent(); p.oddSts(); p = p.parent()) { if ( p.cid() == pwr_eClass_LibHier) { m_sts = PWRB__INLIBHIER; return; } if ( check_hierarchy && cdh_ObjidIsEqual( m_hierarchy, p.oid())) hierarchy_found = 1; } if ( check_hierarchy && !hierarchy_found) { m_sts = PWRB__NOBUILT; return; } wb_attribute a = m_session.attribute( oid, "RtBody", "Name"); if ( !a) { m_sts = a.sts(); return; } a.value( java_name); if ( !a) { m_sts = a.sts(); return; } if ( isupper(java_name[0])) { cdh_ToLower( java_name, java_name); java_name[0] = toupper(java_name[0]); // Get the .pwg file for this javaname strcpy( graph_name, cdh_Low(java_name)); sprintf( name, "$pwrp_pop/%s.pwg", graph_name); dcli_translate_filename( name, name); m_sts = dcli_file_time( name, &src_time); if ( evenSts()) { // Search in all pwg files found = 0; strcpy( file_spec, "$pwrp_pop/*.pwg"); for ( fsts = dcli_search_file( file_spec, found_file, DCLI_DIR_SEARCH_INIT); ODD(fsts); fsts = dcli_search_file( file_spec, found_file, DCLI_DIR_SEARCH_NEXT)) { fsts = grow_IsJava( found_file, &is_frame, &is_applet, jname); if ( EVEN(fsts)) continue; if ( is_frame && strcmp( jname, java_name) == 0) { dcli_parse_filename( found_file, dev, dir, graph_name, type, &version); strcpy( name, found_file); found = 1; break; } } dcli_search_file( file_spec, found_file, DCLI_DIR_SEARCH_END); if ( !found) { char msg[200]; sprintf( msg, "Graph for %s not found", java_name); MsgWindow::message('E', msg, msgw_ePop_Yes, oid); m_sts = PWRB__NOBUILT; return; } } m_sts = dcli_file_time( name, &src_time); if ( evenSts()) return; // Check exported java frame jexport = 0; sprintf( dest_fname, "$pwrp_pop/%s.java", java_name); dcli_translate_filename( dest_fname, dest_fname); fsts = dcli_file_time( dest_fname, &dest_time); if ( opt.force || EVEN(fsts) || time_Acomp( &src_time, &dest_time) == 1) jexport = 1; if ( jexport) { if ( !m_wnav) { sprintf( cmd, "Build: WebGraph Unable to export java in this environment %s", java_name); MsgWindow::message('W', cmd, msgw_ePop_No, oid); } else { // Get signature from WebHandler for ( wb_object p = o.parent(); p.oddSts(); p = p.parent()) { if ( p.cid() == pwr_cClass_WebHandler) { wb_attribute a = m_session.attribute( p.oid(), "RtBody", "AppletSignature"); if ( !a) { m_sts = a.sts(); return; } a.value( appletsignature); if ( !a) { m_sts = a.sts(); return; } dcli_trim( appletsignature, appletsignature); break; } } Ge *gectx = m_wnav->ge_new( graph_name, 1); if ( strcmp( appletsignature, "") == 0) strcpy( cmd, "export java"); else sprintf( cmd, "export java /signature=\"%s\"", appletsignature); m_sts = gectx->command( cmd); if ( evenSts()) { msg_GetMsg( m_sts, cmd, sizeof(cmd)); MsgWindow::message('E', cmd, msgw_ePop_Yes, oid); m_sts = PWRB__NOBUILT; delete gectx; return; } delete gectx; sprintf( cmd, "Build: WebGraph Export java %s", java_name); MsgWindow::message('I', cmd, msgw_ePop_No, oid); m_sts = PWRB__SUCCESS; } } } else { // Copy from $pwrp_pop to $pwrp_web strcpy( graph_name, cdh_Low(java_name)); cdh_ToLower( graph_name, graph_name); strcpy( src_fname, "$pwrp_pop/"); strcat( src_fname, graph_name); if ( strstr( src_fname, ".pwg") == 0) strcat( src_fname, ".pwg"); dcli_translate_filename( src_fname, src_fname); m_sts = dcli_file_time( src_fname, &src_time); if ( evenSts()) { m_sts = PWRB__NOBUILT; return; } strcpy( dest_fname, "$pwrp_web/"); strcat( dest_fname, graph_name); if ( strstr( dest_fname, ".pwg") == 0) strcat( dest_fname, ".pwg"); dcli_translate_filename( dest_fname, dest_fname); m_sts = dcli_file_time( dest_fname, &dest_time); if ( opt.force || evenSts() || src_time.tv_sec > dest_time.tv_sec) { sprintf( cmd, "cp %s %s", src_fname, dest_fname); system( cmd); sprintf( cmd, "Build: WebGraph copy $pwrp_pop/%s -> $pwrp_web", graph_name); MsgWindow::message( 'I', cmd, msgw_ePop_No, oid); strcpy( name, graph_name); if (( s = strrchr( name, '.'))) *s = 0; wb_log::log( wlog_eCategory_GeBuild, name, 0); m_sts = PWRB__SUCCESS; } else m_sts = PWRB__NOBUILT; } }