Version 14.39.5

This commit is contained in:
Antonio Cañas Vargas 2014-12-21 19:43:39 +01:00
parent 781f87d7f2
commit 5d5db513fd
41 changed files with 189 additions and 149 deletions

View File

@ -40,6 +40,14 @@ table
border-style:none; border-style:none;
border-spacing:0px; border-spacing:0px;
} }
table th
{
padding:0px;
}
table td
{
padding:0px;
}
img {border-width:0px; border-style:none;} img {border-width:0px; border-style:none;}
form {margin:0px; display:inline;} form {margin:0px; display:inline;}
p {margin:0px;} p {margin:0px;}
@ -443,6 +451,14 @@ hr.YELLOW_SEPARA {height:0px; border-top:0px; border-bottom:#BD4815 dotted 1px;}
font-size:16pt; font-size:16pt;
font-weight:bold; font-weight:bold;
} }
.CELLS_PAD_1 th {padding:1px;}
.CELLS_PAD_1 td {padding:1px;}
.CELLS_PAD_2 th {padding:2px;}
.CELLS_PAD_2 td {padding:2px;}
.CELLS_PAD_4 th {padding:4px;}
.CELLS_PAD_4 td {padding:4px;}
.CELLS_PAD_8 th {padding:8px;}
.CELLS_PAD_8 td {padding:8px;}
/*********************************** Title ***********************************/ /*********************************** Title ***********************************/
.TIT .TIT

View File

@ -40,6 +40,14 @@ table
border-style:none; border-style:none;
border-spacing:0px; border-spacing:0px;
} }
table th
{
padding:0px;
}
table td
{
padding:0px;
}
img {border-width:0px; border-style:none;} img {border-width:0px; border-style:none;}
form {margin:0px; display:inline;} form {margin:0px; display:inline;}
p {margin:0px;} p {margin:0px;}
@ -291,6 +299,14 @@ p {margin:0px;}
font-size:20pt; font-size:20pt;
font-weight:bold; font-weight:bold;
} }
.CELLS_PAD_1 th {padding:1px;}
.CELLS_PAD_1 td {padding:1px;}
.CELLS_PAD_2 th {padding:2px;}
.CELLS_PAD_2 td {padding:2px;}
.CELLS_PAD_4 th {padding:4px;}
.CELLS_PAD_4 td {padding:4px;}
.CELLS_PAD_8 th {padding:8px;}
.CELLS_PAD_8 td {padding:8px;}
/*********************************** Title ***********************************/ /*********************************** Title ***********************************/
.TIT { .TIT {

View File

@ -4138,7 +4138,7 @@ void Act_WriteSmallMFUActions (struct Act_ListMFUActions *ListMFUActions)
fprintf (Gbl.F.Out," %s</a></form>",Txt_Frequent_actions); fprintf (Gbl.F.Out," %s</a></form>",Txt_Frequent_actions);
fprintf (Gbl.F.Out,"<div id=\"MFU_actions\">" fprintf (Gbl.F.Out,"<div id=\"MFU_actions\">"
"<table cellpadding=\"0\" width=\"120\">"); "<table width=\"120\">");
/***** Write list of frequently used actions *****/ /***** Write list of frequently used actions *****/
for (NumAct = 0; for (NumAct = 0;
@ -4203,7 +4203,7 @@ void Act_UpdateMFUActions (void)
if (Act_Actions[Gbl.CurrentAct].SuperAction == ActMFUAct) if (Act_Actions[Gbl.CurrentAct].SuperAction == ActMFUAct)
return; return;
setlocale (LC_NUMERIC,"en_US.iso88591"); // To get the decimal point setlocale (LC_NUMERIC,"en_US.utf8"); // To get the decimal point
/***** Get current score *****/ /***** Get current score *****/
sprintf (Query,"SELECT Score FROM actions_MFU" sprintf (Query,"SELECT Score FROM actions_MFU"
@ -4242,5 +4242,5 @@ void Act_UpdateMFUActions (void)
Act_Actions[Act_Actions[Gbl.CurrentAct].SuperAction].ActCod); Act_Actions[Act_Actions[Gbl.CurrentAct].SuperAction].ActCod);
DB_QueryUPDATE (Query,"can not update most frequently used actions"); DB_QueryUPDATE (Query,"can not update most frequently used actions");
setlocale (LC_NUMERIC,"es_ES.iso88591"); setlocale (LC_NUMERIC,"es_ES.utf8");
} }

View File

@ -266,7 +266,7 @@ static void Asg_ShowOneAssignment (long AsgCod)
/* Send work? */ /* Send work? */
fprintf (Gbl.F.Out,"<td rowspan=\"2\" align=\"center\" valign=\"top\"" fprintf (Gbl.F.Out,"<td rowspan=\"2\" align=\"center\" valign=\"top\""
" bgcolor=\"%s\">" " bgcolor=\"%s\">"
"<table cellpadding=\"0\" style=\"border-spacing:2px;\">" "<table style=\"border-spacing:2px;\">"
"<tr>" "<tr>"
"<td align=\"center\" valign=\"top\" class=\"%s\">" "<td align=\"center\" valign=\"top\" class=\"%s\">"
"<img src=\"%s/%s16x16.gif\"" "<img src=\"%s/%s16x16.gif\""
@ -395,7 +395,7 @@ static void Asg_WriteAssignmentFolder (struct Assignment *Asg)
if (Asg->SendWork == Asg_SEND_WORK) if (Asg->SendWork == Asg_SEND_WORK)
{ {
/***** Folder icon *****/ /***** Folder icon *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\" style=\"border-spacing:2px;\">" fprintf (Gbl.F.Out,"<table style=\"border-spacing:2px;\">"
"<tr>" "<tr>"
"<td class=\"BT\">"); "<td class=\"BT\">");
if (Asg->Open && if (Asg->Open &&
@ -484,7 +484,7 @@ static void Asg_PutFormsToRemEditOneAsg (long AsgCod,bool Hidden)
extern const char *Txt_Hide; extern const char *Txt_Hide;
extern const char *Txt_Edit; extern const char *Txt_Edit;
fprintf (Gbl.F.Out,"<table cellpadding=\"4\">" fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_4\">"
"<tr>"); "<tr>");
/***** Put form to remove assignment *****/ /***** Put form to remove assignment *****/
@ -1152,7 +1152,7 @@ void Asg_RequestCreatOrEditAsg (void)
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"right\" valign=\"top\" class=\"TIT_TBL\">%s:</td>" "<td align=\"right\" valign=\"top\" class=\"TIT_TBL\">%s:</td>"
"<td align=\"left\" valign=\"top\">" "<td align=\"left\" valign=\"top\">"
"<table cellpadding=\"2\">" "<table class=\"CELLS_PAD_2\">"
"<tr>" "<tr>"
"<td align=\"left\" valign=\"top\">", "<td align=\"left\" valign=\"top\">",
Dates[StartOrEndTime]); Dates[StartOrEndTime]);

View File

@ -468,7 +468,7 @@ static void Att_PutFormsToRemEditOneAttEvent (long AttCod,bool Hidden)
extern const char *Txt_Edit; extern const char *Txt_Edit;
/***** Put form to remove attendance event *****/ /***** Put form to remove attendance event *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"4\">" fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_4\">"
"<tr>" "<tr>"
"<td align=\"left\">"); "<td align=\"left\">");
Act_FormStart (ActReqRemAtt); Act_FormStart (ActReqRemAtt);
@ -1104,7 +1104,7 @@ void Att_RequestCreatOrEditAttEvent (void)
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"right\" valign=\"top\" class=\"TIT_TBL\">%s:</td>" "<td align=\"right\" valign=\"top\" class=\"TIT_TBL\">%s:</td>"
"<td align=\"left\" valign=\"top\">" "<td align=\"left\" valign=\"top\">"
"<table cellpadding=\"2\">" "<table class=\"CELLS_PAD_2\">"
"<tr>" "<tr>"
"<td align=\"left\" valign=\"top\">", "<td align=\"left\" valign=\"top\">",
Dates[StartOrEndTime]); Dates[StartOrEndTime]);

View File

@ -1246,7 +1246,7 @@ static void Ctr_ListCentresForEdition (void)
UsrDat.UsrCod = Ctr->RequesterUsrCod; UsrDat.UsrCod = Ctr->RequesterUsrCod;
Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat); Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat);
fprintf (Gbl.F.Out,"<td align=\"left\" width=\"100\" valign=\"top\">" fprintf (Gbl.F.Out,"<td align=\"left\" width=\"100\" valign=\"top\">"
"<table width=\"100\" cellpadding=\"2\">" "<table width=\"100\" class=\"CELLS_PAD_2\">"
"<tr>"); "<tr>");
Msg_WriteMsgAuthor (&UsrDat,80,10,"DAT",true,NULL); Msg_WriteMsgAuthor (&UsrDat,80,10,"DAT",true,NULL);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>"
@ -1943,7 +1943,7 @@ static void Ctr_PutFormToCreateCentre (void)
/***** Centre requester *****/ /***** Centre requester *****/
fprintf (Gbl.F.Out,"<td align=\"left\" width=\"100\" valign=\"top\">" fprintf (Gbl.F.Out,"<td align=\"left\" width=\"100\" valign=\"top\">"
"<table width=\"100\" cellpadding=\"2\">" "<table width=\"100\" class=\"CELLS_PAD_2\">"
"<tr>"); "<tr>");
Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,80,10,"DAT",true,NULL); Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,80,10,"DAT",true,NULL);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>"

View File

@ -35,11 +35,12 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 14.39.4 (2014/12/21)" #define Log_PLATFORM_VERSION "SWAD 14.39.5 (2014/12/21)"
// Number of lines (includes comments but not blank lines) has been got with the following command: // Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h | tail -1 // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h | tail -1
/* /*
Version 14.39.5 :Dic 21, 2014 Changes in HTML and CSS to validate HTML5 in W3C validator. (170725 lines)
Version 14.39.4 :Dic 21, 2014 Changes in HTML and CSS to validate HTML5 in W3C validator. (170688 lines) Version 14.39.4 :Dic 21, 2014 Changes in HTML and CSS to validate HTML5 in W3C validator. (170688 lines)
Version 14.39.3 :Dic 21, 2014 Changes to validate HTML5 in W3C validator. Version 14.39.3 :Dic 21, 2014 Changes to validate HTML5 in W3C validator.
Charset is changed from ISO-8859-1 to windows-1252. (170664 lines) Charset is changed from ISO-8859-1 to windows-1252. (170664 lines)

View File

@ -277,7 +277,7 @@ static void Cht_WriteLinkToChat (const char *Icon,const char *RoomCode,const cha
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"left\" valign=\"top\">" "<td align=\"left\" valign=\"top\">"
"<table cellpadding=\"0\">" "<table>"
"<tr>"); "<tr>");
Msg_IndentDependingOnLevel (Level,IsLastItemInLevel); Msg_IndentDependingOnLevel (Level,IsLastItemInLevel);

View File

@ -251,7 +251,7 @@ void Con_ShowGlobalConnectedUsrs (void)
/***** Start table *****/ /***** Start table *****/
fprintf (Gbl.F.Out,"<div class=\"CONNECTED\" style=\"width:110px;\">" fprintf (Gbl.F.Out,"<div class=\"CONNECTED\" style=\"width:110px;\">"
"<table cellpadding=\"0\" width=\"110\">"); "<table width=\"110\">");
/***** Write total number of sessions *****/ /***** Write total number of sessions *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
@ -394,11 +394,11 @@ void Con_ShowConnectedUsrsBelongingToScope (void)
{ {
case Con_SHOW_ON_MAIN_ZONE: case Con_SHOW_ON_MAIN_ZONE:
fprintf (Gbl.F.Out,"<div class=\"CONNECTED\" style=\"width:312px;\">" fprintf (Gbl.F.Out,"<div class=\"CONNECTED\" style=\"width:312px;\">"
"<table cellpadding=\"0\">"); "<table>");
break; break;
case Con_SHOW_ON_RIGHT_COLUMN: case Con_SHOW_ON_RIGHT_COLUMN:
fprintf (Gbl.F.Out,"<div class=\"CONNECTED\" style=\"width:110px;\">" fprintf (Gbl.F.Out,"<div class=\"CONNECTED\" style=\"width:110px;\">"
"<table cellpadding=\"0\" width=\"110\">"); "<table width=\"110\">");
break; break;
} }

View File

@ -1246,7 +1246,7 @@ static void Crs_ListCoursesForEdition (void)
UsrDat.UsrCod = Crs->RequesterUsrCod; UsrDat.UsrCod = Crs->RequesterUsrCod;
Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat); Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat);
fprintf (Gbl.F.Out,"<td align=\"left\" width=\"100\" valign=\"top\">" fprintf (Gbl.F.Out,"<td align=\"left\" width=\"100\" valign=\"top\">"
"<table width=\"100\" cellpadding=\"2\">" "<table width=\"100\" class=\"CELLS_PAD_2\">"
"<tr>"); "<tr>");
Msg_WriteMsgAuthor (&UsrDat,80,10,"DAT",true,NULL); Msg_WriteMsgAuthor (&UsrDat,80,10,"DAT",true,NULL);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>"
@ -1429,7 +1429,7 @@ static void Crs_PutFormToCreateCourse (void)
/***** Course requester *****/ /***** Course requester *****/
fprintf (Gbl.F.Out,"<td align=\"left\" width=\"100\" valign=\"top\">" fprintf (Gbl.F.Out,"<td align=\"left\" width=\"100\" valign=\"top\">"
"<table width=\"100\" cellpadding=\"2\">" "<table width=\"100\" class=\"CELLS_PAD_2\">"
"<tr>"); "<tr>");
Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,80,10,"DAT",true,NULL); Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,80,10,"DAT",true,NULL);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>"

View File

@ -266,7 +266,7 @@ void Dat_DrawCalendar (void)
/***** Draw several months *****/ /***** Draw several months *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"center\">" "<td align=\"center\">"
"<table cellpadding=\"0\" style=\"border-spacing:5px;\">"); "<table style=\"border-spacing:5px;\">");
for (Row = 0; for (Row = 0;
Row < 4; Row < 4;
Row++) Row++)
@ -354,7 +354,7 @@ void Dat_DrawMonth (unsigned RealYear,unsigned RealMonth,
/***** Start of month *****/ /***** Start of month *****/
fprintf (Gbl.F.Out,"<div class=\"MONTH_CONTAINER\">" fprintf (Gbl.F.Out,"<div class=\"MONTH_CONTAINER\">"
"<div class=\"MONTH\">%s %u</div>" "<div class=\"MONTH\">%s %u</div>"
"<table cellpadding=\"0\" class=\"MONTH_TABLE_DAYS\">", "<table class=\"MONTH_TABLE_DAYS\">",
Txt_MONTHS_CAPS[RealMonth-1],RealYear); Txt_MONTHS_CAPS[RealMonth-1],RealYear);
/***** Month head: first letter for each day of week *****/ /***** Month head: first letter for each day of week *****/
@ -465,7 +465,7 @@ void Dat_DrawMonth (unsigned RealYear,unsigned RealMonth,
if (PutLinkToEvents && ThisDayHasEvent) if (PutLinkToEvents && ThisDayHasEvent)
{ {
Act_FormStart (ActSeeExaAnn); Act_FormStart (ActSeeExaAnn);
fprintf (Gbl.F.Out,"<table cellpadding=\"0\" width=\"100%%\">" fprintf (Gbl.F.Out,"<table width=\"100%%\">"
"<tr>" "<tr>"
"<td align=\"center\" class=\"%s\">", "<td align=\"center\" class=\"%s\">",
ClassForDay); ClassForDay);
@ -632,7 +632,7 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
extern const char *Txt_MONTHS_SMALL[12]; extern const char *Txt_MONTHS_SMALL[12];
/***** Day *****/ /***** Day *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\">" fprintf (Gbl.F.Out,"<table>"
"<tr>" "<tr>"
"<td align=\"left\">" "<td align=\"left\">"
"<select id=\"%s\" name=\"%s\"", "<select id=\"%s\" name=\"%s\"",
@ -719,7 +719,7 @@ void Dat_WriteFormHourMinute (const char *NameSelectHour,const char *NameSelectM
unsigned Hour,Minute; unsigned Hour,Minute;
/***** Hour *****/ /***** Hour *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\">" fprintf (Gbl.F.Out,"<table>"
"<tr>" "<tr>"
"<td align=\"left\">" "<td align=\"left\">"
"<select name=\"%s\"", "<select name=\"%s\"",

View File

@ -434,7 +434,7 @@ void Deg_WriteMenuAllCourses (Act_Action_t NextActionCty,
/***** Start of table *****/ /***** Start of table *****/
fprintf (Gbl.F.Out,"<div align=\"center\" style=\"margin-bottom:10px;\">" fprintf (Gbl.F.Out,"<div align=\"center\" style=\"margin-bottom:10px;\">"
"<table cellpadding=\"2\">"); "<table class=\"CELLS_PAD_2\">");
/***** Write a 1st selector /***** Write a 1st selector
with all the countries *****/ with all the countries *****/
@ -1542,7 +1542,7 @@ static void Deg_ListDegreesForEdition (void)
UsrDat.UsrCod = Deg->RequesterUsrCod; UsrDat.UsrCod = Deg->RequesterUsrCod;
Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat); Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat);
fprintf (Gbl.F.Out,"<td align=\"left\" width=\"100\" valign=\"top\">" fprintf (Gbl.F.Out,"<td align=\"left\" width=\"100\" valign=\"top\">"
"<table width=\"100\" cellpadding=\"2\">" "<table width=\"100\" class=\"CELLS_PAD_2\">"
"<tr>"); "<tr>");
Msg_WriteMsgAuthor (&UsrDat,80,10,"DAT",true,NULL); Msg_WriteMsgAuthor (&UsrDat,80,10,"DAT",true,NULL);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>"
@ -1806,7 +1806,7 @@ static void Deg_PutFormToCreateDegree (void)
/***** Degree requester *****/ /***** Degree requester *****/
fprintf (Gbl.F.Out,"<td align=\"left\" width=\"100\" valign=\"top\">" fprintf (Gbl.F.Out,"<td align=\"left\" width=\"100\" valign=\"top\">"
"<table width=\"100\" cellpadding=\"2\">" "<table width=\"100\" class=\"CELLS_PAD_2\">"
"<tr>"); "<tr>");
Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,80,10,"DAT",true,NULL); Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,80,10,"DAT",true,NULL);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>"

View File

@ -1917,7 +1917,7 @@ void Enr_ShowEnrollmentRequests (void)
/* Start form */ /* Start form */
Act_FormStart (ActSeeSignUpReq); Act_FormStart (ActSeeSignUpReq);
fprintf (Gbl.F.Out,"<div align=\"center\">" fprintf (Gbl.F.Out,"<div align=\"center\">"
"<table cellpadding=\"0\" style=\"border-spacing:4px;\">"); "<table style=\"border-spacing:4px;\">");
/* Scope (whole platform, current centre, current degree or current course) */ /* Scope (whole platform, current centre, current degree or current course) */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"

View File

@ -780,10 +780,7 @@ static void Exa_ShowExamAnnouncement (long ExaCod,Exa_tTypeViewExamAnnouncement_
Lay_StartRoundFrameTable10 ("500px",0,NULL); Lay_StartRoundFrameTable10 ("500px",0,NULL);
fprintf (Gbl.F.Out,"<tr>" \ fprintf (Gbl.F.Out,"<tr>" \
"<td align=\"center\">" \ "<td align=\"center\">" \
"<table cellpadding=\"20\" width=\"100%%\">" \ "<table width=\"100%%\" style=\"padding:20px; border-spacing:3px;\">");
"<tr>" \
"<td align=\"center\">" \
"<table cellpadding=\"0\" width=\"100%%\" style=\"border-spacing:3px;\">");
/***** Institution logo *****/ /***** Institution logo *****/
fprintf (Gbl.F.Out,"<tr>" \ fprintf (Gbl.F.Out,"<tr>" \
@ -1185,9 +1182,6 @@ static void Exa_ShowExamAnnouncement (long ExaCod,Exa_tTypeViewExamAnnouncement_
/***** End frame *****/ /***** End frame *****/
fprintf (Gbl.F.Out,"</table>" \ fprintf (Gbl.F.Out,"</table>" \
"</td>" \
"</tr>" \
"</table>" \
"</td>" \ "</td>" \
"</tr>"); "</tr>");
Lay_EndRoundFrameTable10 (); Lay_EndRoundFrameTable10 ();

View File

@ -3542,7 +3542,8 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,
/***** Indentation depending on level, icon, and file/folder name *****/ /***** Indentation depending on level, icon, and file/folder name *****/
/* Start of the column */ /* Start of the column */
fprintf (Gbl.F.Out,"<td align=\"left\" width=\"99%%\" bgcolor=\"%s\" valign=\"top\" class=\"NO_BR\">" fprintf (Gbl.F.Out,"<td align=\"left\" width=\"99%%\" bgcolor=\"%s\" valign=\"top\" class=\"NO_BR\">"
"<table cellpadding=\"0\"><tr>", "<table>"
"<tr>",
Gbl.ColorRows[Gbl.RowEvenOdd]); Gbl.ColorRows[Gbl.RowEvenOdd]);
/* Indent depending on level */ /* Indent depending on level */
@ -3909,7 +3910,7 @@ static void Brw_IndentAndWriteIconExpandContract (unsigned Level,Brw_ExpandTree_
extern const char *Txt_Contract_FOLDER_X; extern const char *Txt_Contract_FOLDER_X;
fprintf (Gbl.F.Out,"<td align=\"left\">" fprintf (Gbl.F.Out,"<td align=\"left\">"
"<table cellpadding=\"0\">" "<table>"
"<tr>"); "<tr>");
Brw_IndentDependingOnLevel (Level); Brw_IndentDependingOnLevel (Level);
fprintf (Gbl.F.Out,"<td class=\"BM%d\">",Gbl.RowEvenOdd); fprintf (Gbl.F.Out,"<td class=\"BM%d\">",Gbl.RowEvenOdd);
@ -4548,7 +4549,7 @@ static void Brw_WriteDatesAssignment (void)
if (Gbl.FileBrowser.Asg.AsgCod > 0) if (Gbl.FileBrowser.Asg.AsgCod > 0)
{ {
fprintf (Gbl.F.Out,"<table cellpadding=\"0\">" fprintf (Gbl.F.Out,"<table>"
"<tr>"); "<tr>");
/***** Write start date *****/ /***** Write start date *****/
@ -7509,7 +7510,7 @@ void Brw_ShowFileMetadata (void)
} }
/***** Start table *****/ /***** Start table *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"2\">"); fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">");
/***** Link to download the file *****/ /***** Link to download the file *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"

View File

@ -858,7 +858,7 @@ static void For_ShowThreadPosts (long ThrCod,char *LastSubject)
/* Write thread title */ /* Write thread title */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"left\" valign=\"top\">" "<td align=\"left\" valign=\"top\">"
"<table cellpadding=\"0\">" "<table>"
"<tr>"); "<tr>");
IsLastItemInLevel[2] = true; IsLastItemInLevel[2] = true;
Msg_IndentDependingOnLevel (2,IsLastItemInLevel); Msg_IndentDependingOnLevel (2,IsLastItemInLevel);
@ -929,7 +929,7 @@ static void For_ShowThreadPosts (long ThrCod,char *LastSubject)
Lay_StartRoundFrameTable10 (NULL,0,NULL); Lay_StartRoundFrameTable10 (NULL,0,NULL);
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"center\" width=\"100%%\">" "<td align=\"center\" width=\"100%%\">"
"<table cellpadding=\"2\" width=\"100%%\">"); "<table width=\"100%%\" class=\"CELLS_PAD_2\">");
mysql_data_seek (mysql_res,(my_ulonglong) (Pagination.FirstItemVisible-1)); mysql_data_seek (mysql_res,(my_ulonglong) (Pagination.FirstItemVisible-1));
for (NumRow = Pagination.FirstItemVisible; for (NumRow = Pagination.FirstItemVisible;
@ -1119,7 +1119,7 @@ static void For_ShowAForumPost (struct ForumThread *Thr,unsigned PstNum,long Pst
/***** Write author or destinatary, and form to reply (in case of received post) *****/ /***** Write author or destinatary, and form to reply (in case of received post) *****/
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"<td align=\"left\" width=\"120\" colspan=\"2\" valign=\"top\">" "<td align=\"left\" width=\"120\" colspan=\"2\" valign=\"top\">"
"<table width=\"120\" cellpadding=\"2\">"); "<table width=\"120\" class=\"CELLS_PAD_2\">");
/* Write author */ /* Write author */
fprintf (Gbl.F.Out,"<tr>"); fprintf (Gbl.F.Out,"<tr>");
@ -2045,7 +2045,7 @@ static void For_WriteLinkToForum (For_ForumType_t ForumType,Act_Action_t NextAct
/***** Start row *****/ /***** Start row *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"left\" valign=\"top\">" "<td align=\"left\" valign=\"top\">"
"<table cellpadding=\"0\">" "<table>"
"<tr>"); "<tr>");
/***** Indent forum title *****/ /***** Indent forum title *****/

View File

@ -84,7 +84,7 @@ void Gbl_InitializeGlobals (void)
char UniqueNamePlain[Cns_MAX_LENGTH_IP+1+10+1+10+1]; char UniqueNamePlain[Cns_MAX_LENGTH_IP+1+10+1+10+1];
Txt_Language_t Lan; Txt_Language_t Lan;
setlocale (LC_ALL,"es_ES.iso88591"); setlocale (LC_ALL,"es_ES.utf8");
gettimeofday (&Gbl.tvStart, &Gbl.tz); gettimeofday (&Gbl.tvStart, &Gbl.tz);
Dat_GetTimeStartExecution (); Dat_GetTimeStartExecution ();

View File

@ -1205,7 +1205,7 @@ static void Grp_ListGroupTypesForEdition (void)
fprintf (Gbl.F.Out,"<td align=\"left\" valign=\"middle\">"); fprintf (Gbl.F.Out,"<td align=\"left\" valign=\"middle\">");
Act_FormStart (ActChgTimGrpTyp); Act_FormStart (ActChgTimGrpTyp);
Grp_PutParamGrpTypCod (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypCod); Grp_PutParamGrpTypCod (Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypCod);
fprintf (Gbl.F.Out,"<table cellpadding=\"2\">" fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">"
"<tr>" "<tr>"
"<td width=\"16\" align=\"left\" valign=\"middle\">" "<td width=\"16\" align=\"left\" valign=\"middle\">"
"<img src=\"%s/%s16x16.gif\" title=\"%s\"" "<img src=\"%s/%s16x16.gif\" title=\"%s\""
@ -2044,7 +2044,7 @@ static void Grp_PutFormToCreateGroupType (void)
/***** Open time *****/ /***** Open time *****/
fprintf (Gbl.F.Out,"<td align=\"left\" valign=\"middle\">" fprintf (Gbl.F.Out,"<td align=\"left\" valign=\"middle\">"
"<table cellpadding=\"2\">" "<table class=\"CELLS_PAD_2\">"
"<tr>" "<tr>"
"<td align=\"left\" valign=\"middle\">" "<td align=\"left\" valign=\"middle\">"
"<img src=\"%s/%s16x16.gif\" alt=\"\" title=\"%s\"" "<img src=\"%s/%s16x16.gif\" alt=\"\" title=\"%s\""
@ -4116,7 +4116,7 @@ void Grp_ShowSelectorWhichGrps (void)
extern const char *Txt_Show_WHICH_groups[2]; extern const char *Txt_Show_WHICH_groups[2];
Grp_WhichGroups_t WhichGrps; Grp_WhichGroups_t WhichGrps;
fprintf (Gbl.F.Out,"<table cellpadding=\"2\">" fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">"
"<tr>"); "<tr>");
for (WhichGrps = Grp_ONLY_MY_GROUPS; for (WhichGrps = Grp_ONLY_MY_GROUPS;
WhichGrps <= Grp_ALL_GROUPS; WhichGrps <= Grp_ALL_GROUPS;

View File

@ -68,7 +68,7 @@ void Ico_PutIconsToSelectIconSet (void)
{ {
Ico_IconSet_t IconSet; Ico_IconSet_t IconSet;
fprintf (Gbl.F.Out,"<table cellpadding=\"1\">" fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_1\">"
"<tr>"); "<tr>");
for (IconSet = (Ico_IconSet_t) 0; for (IconSet = (Ico_IconSet_t) 0;
IconSet < Ico_NUM_ICON_SETS; IconSet < Ico_NUM_ICON_SETS;

View File

@ -92,7 +92,7 @@ void Ind_ReqIndicatorsCourses (void)
/* Start form */ /* Start form */
Act_FormStart (ActReqStaCrs); Act_FormStart (ActReqStaCrs);
fprintf (Gbl.F.Out,"<div align=\"center\">" fprintf (Gbl.F.Out,"<div align=\"center\">"
"<table cellpadding=\"2\">"); "<table class=\"CELLS_PAD_2\">");
/* Compute stats for anywhere, centre, degree or course? */ /* Compute stats for anywhere, centre, degree or course? */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
@ -495,7 +495,7 @@ static void Ind_ShowTableOfCoursesWithIndicators (Ind_IndicatorsLayout_t Indicat
struct Ind_IndicatorsCrs Indicators; struct Ind_IndicatorsCrs Indicators;
/***** Table start *****/ /***** Table start *****/
fprintf (Gbl.F.Out,"<table bgcolor=\"#4D88A1\" cellpadding=\"1\" style=\"border-spacing:1px;\">"); fprintf (Gbl.F.Out,"<table bgcolor=\"#4D88A1\" class=\"CELLS_PAD_1\" style=\"border-spacing:1px;\">");
/***** Write table heading *****/ /***** Write table heading *****/
switch (IndicatorsLayout) switch (IndicatorsLayout)

View File

@ -1041,7 +1041,7 @@ void Inf_FormToSendPage (Inf_InfoSrc_t InfoSrc,Inf_InfoType_t InfoType)
Act_FormStart (Inf_ActionsInfo[InfoSrc][InfoType]); Act_FormStart (Inf_ActionsInfo[InfoSrc][InfoType]);
/***** File *****/ /***** File *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\">" fprintf (Gbl.F.Out,"<table>"
"<tr>" "<tr>"
"<td align=\"right\" class=\"%s\">%s:</td>" "<td align=\"right\" class=\"%s\">%s:</td>"
"<td align=\"left\">" "<td align=\"left\">"
@ -1074,7 +1074,8 @@ void Inf_FormToSendURL (Inf_InfoSrc_t InfoSrc,Inf_InfoType_t InfoType)
Act_FormStart (Inf_ActionsInfo[InfoSrc][InfoType]); Act_FormStart (Inf_ActionsInfo[InfoSrc][InfoType]);
/***** Link *****/ /***** Link *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\"><tr>" fprintf (Gbl.F.Out,"<table>"
"<tr>"
"<td align=\"right\" class=\"%s\">%s:</td>" "<td align=\"right\" class=\"%s\">%s:</td>"
"<td align=\"left\">" "<td align=\"left\">"
"<input type=\"text\" name=\"InfoSrcURL\" size=\"50\" maxlength=\"256\" value=\"", "<input type=\"text\" name=\"InfoSrcURL\" size=\"50\" maxlength=\"256\" value=\"",

View File

@ -1172,7 +1172,7 @@ static void Ins_ListInstitutionsForEdition (void)
UsrDat.UsrCod = Ins->RequesterUsrCod; UsrDat.UsrCod = Ins->RequesterUsrCod;
Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat); Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat);
fprintf (Gbl.F.Out,"<td align=\"left\" width=\"100\" valign=\"top\">" fprintf (Gbl.F.Out,"<td align=\"left\" width=\"100\" valign=\"top\">"
"<table width=\"100\" cellpadding=\"2\">" "<table width=\"100\" class=\"CELLS_PAD_2\">"
"<tr>"); "<tr>");
Msg_WriteMsgAuthor (&UsrDat,80,10,"DAT",true,NULL); Msg_WriteMsgAuthor (&UsrDat,80,10,"DAT",true,NULL);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>"
@ -1705,7 +1705,7 @@ static void Ins_PutFormToCreateInstitution (void)
/***** Centre requester *****/ /***** Centre requester *****/
fprintf (Gbl.F.Out,"<td align=\"left\" width=\"100\" valign=\"top\">" fprintf (Gbl.F.Out,"<td align=\"left\" width=\"100\" valign=\"top\">"
"<table width=\"100\" cellpadding=\"2\">" "<table width=\"100\" class=\"CELLS_PAD_2\">"
"<tr>"); "<tr>");
Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,80,10,"DAT",true,NULL); Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,80,10,"DAT",true,NULL);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>"

View File

@ -271,7 +271,7 @@ void Lay_WriteStartOfPage (void)
Gbl.Prefs.IconsURL); Gbl.Prefs.IconsURL);
/***** Header of layout *****/ /***** Header of layout *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\" width=\"100%%\">"); fprintf (Gbl.F.Out,"<table width=\"100%%\">");
Lay_WritePageTopHeading (); Lay_WritePageTopHeading ();
@ -284,7 +284,7 @@ void Lay_WriteStartOfPage (void)
} }
fprintf (Gbl.F.Out,"<td colspan=\"%u\" align=\"center\" valign=\"top\">" fprintf (Gbl.F.Out,"<td colspan=\"%u\" align=\"center\" valign=\"top\">"
"<div id=\"CENTRAL_ZONE\" style=\"background-color:%s;vertical-align:top;\">" "<div id=\"CENTRAL_ZONE\" style=\"background-color:%s;vertical-align:top;\">"
"<table cellpadding=\"0\" width=\"100%%\" style=\"vertical-align:top;\">" "<table width=\"100%%\" style=\"vertical-align:top;\">"
"<tr>", "<tr>",
ColspanCentralPart, ColspanCentralPart,
The_TabOnBgColors[Gbl.Prefs.Theme]); The_TabOnBgColors[Gbl.Prefs.Theme]);
@ -604,7 +604,7 @@ static void Lay_WritePageTopHeading (void)
Cfg_PLATFORM_FULL_NAME); Cfg_PLATFORM_FULL_NAME);
fprintf (Gbl.F.Out,"</td>"); fprintf (Gbl.F.Out,"</td>");
fprintf (Gbl.F.Out,"<td align=\"center\" valign=\"middle\">" fprintf (Gbl.F.Out,"<td align=\"center\" valign=\"middle\">"
"<table width=\"100%%\" cellpadding=\"0\">" "<table width=\"100%%\">"
"<tr>"); "<tr>");
/***** 1st. row, 2nd. column: search, and logged user / language selection *****/ /***** 1st. row, 2nd. column: search, and logged user / language selection *****/
if (Gbl.Prefs.Layout == Lay_LAYOUT_DESKTOP) if (Gbl.Prefs.Layout == Lay_LAYOUT_DESKTOP)
@ -955,7 +955,7 @@ static void Lay_DrawTabsMobile (void)
bool ICanViewTab; bool ICanViewTab;
/***** Table start *****/ /***** Table start *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\" width=\"100%%\">"); fprintf (Gbl.F.Out,"<table width=\"100%%\">");
/***** Loop to write all tabs. Each row holds a tab *****/ /***** Loop to write all tabs. Each row holds a tab *****/
for (NumTabVisible = 0, NumTab = (Act_Tab_t) 1; for (NumTabVisible = 0, NumTab = (Act_Tab_t) 1;
@ -971,7 +971,7 @@ static void Lay_DrawTabsMobile (void)
/* Icon at top and text at bottom */ /* Icon at top and text at bottom */
fprintf (Gbl.F.Out,"<td align=\"center\" valign=\"top\" width=\"25%%\">" fprintf (Gbl.F.Out,"<td align=\"center\" valign=\"top\" width=\"25%%\">"
"<table cellpadding=\"0\">" "<table>"
"<tr>" "<tr>"
"<td align=\"center\" valign=\"top\">"); "<td align=\"center\" valign=\"top\">");
if (ICanViewTab) if (ICanViewTab)
@ -1201,7 +1201,7 @@ static void Lay_WriteMenuThisTabMobile (void)
const char *Title; const char *Title;
/***** Table start *****/ /***** Table start *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\" width=\"100%%\">"); fprintf (Gbl.F.Out,"<table width=\"100%%\">");
/***** Loop to write all options in menu. Each row holds an option *****/ /***** Loop to write all options in menu. Each row holds an option *****/
for (NumOptInMenu = NumOptVisible = 0; for (NumOptInMenu = NumOptVisible = 0;
@ -1345,10 +1345,10 @@ static void Lay_ShowLeftColumn (void)
{ {
struct Act_ListMFUActions ListMFUActions; struct Act_ListMFUActions ListMFUActions;
fprintf (Gbl.F.Out,"<table width=\"128\" cellpadding=\"0\">" fprintf (Gbl.F.Out,"<table width=\"128\">"
"<tr>" "<tr>"
"<td align=\"left\" valign=\"top\">" "<td align=\"left\" valign=\"top\">"
"<table width=\"128\" cellpadding=\"0\" style=\"border-spacing:4px;\">"); "<table width=\"128\" style=\"border-spacing:4px;\">");
/***** Most frequently used actions *****/ /***** Most frequently used actions *****/
if (Gbl.Usrs.Me.Logged) if (Gbl.Usrs.Me.Logged)
@ -1400,11 +1400,11 @@ static void Lay_ShowRightColumn (void)
Gbl.Usrs.Connected.WhereToShow = Con_SHOW_ON_RIGHT_COLUMN; Gbl.Usrs.Connected.WhereToShow = Con_SHOW_ON_RIGHT_COLUMN;
/***** Connected users *****/ /***** Connected users *****/
fprintf (Gbl.F.Out,"<table width=\"100%%\" cellpadding=\"0\">" fprintf (Gbl.F.Out,"<table width=\"100%%\">"
"<tr>" "<tr>"
"<td align=\"right\" valign=\"top\"" "<td align=\"right\" valign=\"top\""
" style=\"background-image: url('%s/head_base_background_1x56.gif'); background-repeat: repeat-x;\">" " style=\"background-image: url('%s/head_base_background_1x56.gif'); background-repeat: repeat-x;\">"
"<table width=\"100%%\" cellpadding=\"0\" style=\"padding-top:56px; border-spacing:4px;\">", "<table width=\"100%%\" style=\"padding-top:56px; border-spacing:4px;\">",
Gbl.Prefs.PathTheme); Gbl.Prefs.PathTheme);
/***** Banners *****/ /***** Banners *****/
@ -1512,22 +1512,28 @@ void Lay_WriteTitle (const char *Title)
/*****************************************************************************/ /*****************************************************************************/
/****************** Start and end a table with rounded frame *****************/ /****************** Start and end a table with rounded frame *****************/
/*****************************************************************************/ /*****************************************************************************/
// CellPadding must be 0, 1, 2, 4 or 8
void Lay_StartRoundFrameTable10 (const char *Width,unsigned CellPadding,const char *Title) void Lay_StartRoundFrameTable10 (const char *Width,unsigned CellPadding,const char *Title)
{ {
fprintf (Gbl.F.Out,"<div align=\"center\">" fprintf (Gbl.F.Out,"<div align=\"center\">"
"<div class=\"FRAME10\""); "<div class=\"FRAME10\"");
if (Width) if (Width)
fprintf (Gbl.F.Out," style=\"width:%s;\"", fprintf (Gbl.F.Out," style=\"width:%s;\"",Width);
Width);
fprintf (Gbl.F.Out,">"); fprintf (Gbl.F.Out,">");
if (Title) if (Title)
fprintf (Gbl.F.Out,"<div align=\"center\" class=\"TIT_TBL_10\">%s</div>", fprintf (Gbl.F.Out,"<div align=\"center\" class=\"TIT_TBL_10\">%s</div>",
Title); Title);
fprintf (Gbl.F.Out,"<table cellpadding=\"%u\" class=\"TABLE10\">",
CellPadding); fprintf (Gbl.F.Out,"<table class=\"TABLE10");
if (CellPadding)
fprintf (Gbl.F.Out," CELLS_PAD_%u",CellPadding); // CellPadding must be 0, 1, 2, 4 or 8
fprintf (Gbl.F.Out,"\">");
} }
// CellPadding must be 0, 1, 2, 4 or 8
void Lay_StartRoundFrameTable10Shadow (const char *Width,unsigned CellPadding) void Lay_StartRoundFrameTable10Shadow (const char *Width,unsigned CellPadding)
{ {
fprintf (Gbl.F.Out,"<div align=\"center\">" fprintf (Gbl.F.Out,"<div align=\"center\">"
@ -1536,8 +1542,10 @@ void Lay_StartRoundFrameTable10Shadow (const char *Width,unsigned CellPadding)
fprintf (Gbl.F.Out," style=\"width:%s\"", fprintf (Gbl.F.Out," style=\"width:%s\"",
Width); Width);
fprintf (Gbl.F.Out,">" fprintf (Gbl.F.Out,">"
"<table cellpadding=\"%u\" class=\"TABLE10\">", "<table class=\"TABLE10");
CellPadding); if (CellPadding)
fprintf (Gbl.F.Out," CELLS_PAD_%u",CellPadding); // CellPadding must be 0, 1, 2, 4 or 8
fprintf (Gbl.F.Out,"\">");
} }
void Lay_EndRoundFrameTable10 (void) void Lay_EndRoundFrameTable10 (void)
@ -1810,8 +1818,7 @@ void Lay_WriteHeaderClassPhoto (unsigned NumColumns,bool PrintView,bool DrawingC
/***** Table start *****/ /***** Table start *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"center\" colspan=\"%u\">" "<td align=\"center\" colspan=\"%u\">"
"<table cellpadding=\"0\" width=\"100%%\"" "<table width=\"100%%\" style=\"padding:10px;\">"
" style=\"padding:10px;\">"
"<tr>", "<tr>",
NumColumns); NumColumns);
@ -1890,7 +1897,8 @@ void Lay_PutIconsToSelectLayout (void)
extern const char *Txt_LAYOUT_NAMES[Lay_NUM_LAYOUTS]; extern const char *Txt_LAYOUT_NAMES[Lay_NUM_LAYOUTS];
Lay_Layout_t Layout; Lay_Layout_t Layout;
fprintf (Gbl.F.Out,"<table cellpadding=\"1\"><tr>"); fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">"
"<tr>");
for (Layout = (Lay_Layout_t) 0; for (Layout = (Lay_Layout_t) 0;
Layout < Lay_NUM_LAYOUTS; Layout < Lay_NUM_LAYOUTS;
Layout++) Layout++)
@ -1909,7 +1917,8 @@ void Lay_PutIconsToSelectLayout (void)
Txt_LAYOUT_NAMES[Layout], Txt_LAYOUT_NAMES[Layout],
Txt_LAYOUT_NAMES[Layout]); Txt_LAYOUT_NAMES[Layout]);
} }
fprintf (Gbl.F.Out,"</tr></table>"); fprintf (Gbl.F.Out,"</tr>"
"</table>");
} }
/*****************************************************************************/ /*****************************************************************************/

View File

@ -740,7 +740,7 @@ void Lnk_WriteMenuWithInstitutionalLinks (void)
fprintf (Gbl.F.Out,"<tr>" \ fprintf (Gbl.F.Out,"<tr>" \
"<td align=\"center\" width=\"120\" class=\"INS_LNK\">" \ "<td align=\"center\" width=\"120\" class=\"INS_LNK\">" \
"<div id=\"institutional_links\">" \ "<div id=\"institutional_links\">" \
"<table cellpadding=\"0\" width=\"110\">"); "<table width=\"110\">");
/***** Write all the links *****/ /***** Write all the links *****/
for (NumLnk = 0; for (NumLnk = 0;

View File

@ -779,7 +779,7 @@ void Mai_WriteMenuWithMailDomains (void)
Txt_Mail_domains_allowed_for_notifications); Txt_Mail_domains_allowed_for_notifications);
/***** Start table *****/ /***** Start table *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\" width=\"120\">" fprintf (Gbl.F.Out,"<table width=\"120\">"
"<tr>" "<tr>"
"<td align=\"left\" width=\"4\"><img src=\"%s/ewbw1_4x4.gif\" width=\"4\" height=\"4\" alt=\"\" /></td>" "<td align=\"left\" width=\"4\"><img src=\"%s/ewbw1_4x4.gif\" width=\"4\" height=\"4\" alt=\"\" /></td>"
"<td align=\"left\" style=\"background-image: url('%s/mbw1_1x4.gif'); background-repeat: repeat-x;\"></td>" "<td align=\"left\" style=\"background-image: url('%s/mbw1_1x4.gif'); background-repeat: repeat-x;\"></td>"

View File

@ -1574,7 +1574,7 @@ static void Msg_ShowSentOrReceivedMessages (Msg_TypeOfMessages_t TypeOfMessages)
Lay_StartRoundFrameTable10 ("100%",0,NULL); Lay_StartRoundFrameTable10 ("100%",0,NULL);
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"center\" width=\"100%%\">" "<td align=\"center\" width=\"100%%\">"
"<table cellpadding=\"2\" width=\"100%%\">"); "<table width=\"100%%\" class=\"CELLS_PAD_2\">");
mysql_data_seek (mysql_res,(my_ulonglong) (Pagination.FirstItemVisible-1)); mysql_data_seek (mysql_res,(my_ulonglong) (Pagination.FirstItemVisible-1));
for (NumRow = Pagination.FirstItemVisible; for (NumRow = Pagination.FirstItemVisible;
@ -2210,7 +2210,7 @@ void Msg_ShowFormToFilterMsgs (Msg_TypeOfMessages_t TypeOfMessages)
/***** Table start *****/ /***** Table start *****/
fprintf (Gbl.F.Out,"<div align=\"center\">" fprintf (Gbl.F.Out,"<div align=\"center\">"
"<table cellpadding=\"0\">"); "<table>");
/***** Authors/recipients of the message *****/ /***** Authors/recipients of the message *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
@ -2489,7 +2489,7 @@ static void Msg_ShowASentOrReceivedMessage (Msg_TypeOfMessages_t TypeOfMessages,
/***** Put an icon with message status *****/ /***** Put an icon with message status *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"center\" valign=\"top\" width=\"16\" class=\"%s\">" "<td align=\"center\" valign=\"top\" width=\"16\" class=\"%s\">"
"<table cellpadding=\"0\" width=\"16\">" "<table width=\"16\">"
"<tr>" "<tr>"
"<td align=\"center\" valign=\"top\" width=\"16\">" "<td align=\"center\" valign=\"top\" width=\"16\">"
"<img src=\"%s/msg-%s16x16.gif\"" "<img src=\"%s/msg-%s16x16.gif\""
@ -2539,7 +2539,7 @@ static void Msg_ShowASentOrReceivedMessage (Msg_TypeOfMessages_t TypeOfMessages,
{ {
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"left\" valign=\"top\" rowspan=\"3\" colspan=\"3\">" "<td align=\"left\" valign=\"top\" rowspan=\"3\" colspan=\"3\">"
"<table cellpadding=\"2\">"); "<table class=\"CELLS_PAD_2\">");
/***** Write course origin of message *****/ /***** Write course origin of message *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
@ -2858,7 +2858,7 @@ static void Msg_WriteMsgFrom (struct UsrData *UsrDat,bool Deleted)
char PhotoURL[PATH_MAX+1]; char PhotoURL[PATH_MAX+1];
/***** Put an icon to show if user has read the message *****/ /***** Put an icon to show if user has read the message *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\">" fprintf (Gbl.F.Out,"<table>"
"<tr>" "<tr>"
"<td align=\"left\" valign=\"middle\" width=\"16\">" "<td align=\"left\" valign=\"middle\" width=\"16\">"
"<img src=\"%s/%s16x16.gif\"" "<img src=\"%s/%s16x16.gif\""
@ -2963,7 +2963,7 @@ static void Msg_WriteMsgTo (Msg_TypeOfMessages_t TypeOfMessages,long MsgCod)
if (NumRecipientsTotal) if (NumRecipientsTotal)
{ {
/***** Start table *****/ /***** Start table *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\">"); fprintf (Gbl.F.Out,"<table>");
/***** How many recipients will be shown? *****/ /***** How many recipients will be shown? *****/
if (NumRecipientsKnown <= Msg_MAX_RECIPIENTS_TO_SHOW) if (NumRecipientsKnown <= Msg_MAX_RECIPIENTS_TO_SHOW)

View File

@ -1641,7 +1641,7 @@ void Ntf_PutFormChangeNotifSentByEMail (void)
/***** Start form *****/ /***** Start form *****/
Act_FormStart (ActChgNtfPrf); Act_FormStart (ActChgNtfPrf);
fprintf (Gbl.F.Out,"<p class=\"TIT_TBL\">%s</p>" fprintf (Gbl.F.Out,"<p class=\"TIT_TBL\">%s</p>"
"<table cellpadding=\"2\">" "<table class=\"CELLS_PAD_2\">"
"<tr>" "<tr>"
"<th></th>" "<th></th>"
"<th align=\"center\" class=\"TIT_TBL\">%s</th>" "<th align=\"center\" class=\"TIT_TBL\">%s</th>"

View File

@ -185,7 +185,7 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P
if (Pagination->MoreThanOnePage) if (Pagination->MoreThanOnePage)
{ {
/***** Links to several pages start here *****/ /***** Links to several pages start here *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\" style=\"border-spacing:5px;\">" fprintf (Gbl.F.Out,"<table style=\"border-spacing:5px;\">"
"<tr>" "<tr>"
"<td align=\"left\" class=\"%s\">[</td>" "<td align=\"left\" class=\"%s\">[</td>"
"<td align=\"left\" class=\"%s\">%s</td>", "<td align=\"left\" class=\"%s\">%s</td>",

View File

@ -676,7 +676,7 @@ static void Pho_UpdatePhoto2 (void)
unsigned NumPhoto; unsigned NumPhoto;
/***** Show the three images resulting of the processing *****/ /***** Show the three images resulting of the processing *****/
fprintf (Gbl.F.Out,"<table border=\"0\" width=\"100%%\" cellpadding=\"0\"><tr>"); fprintf (Gbl.F.Out,"<table width=\"100%%\"><tr>");
for (NumPhoto = 0; for (NumPhoto = 0;
NumPhoto < 3; NumPhoto < 3;
NumPhoto++) NumPhoto++)
@ -1398,7 +1398,7 @@ void Pho_ShowOrPrintPhotoDegree (Pho_AvgPhotoSeeOrPrint_t SeeOrPrint)
if (SeeOrPrint == Pho_DEGREES_SEE) if (SeeOrPrint == Pho_DEGREES_SEE)
{ {
fprintf (Gbl.F.Out,"<div align=\"center\">" fprintf (Gbl.F.Out,"<div align=\"center\">"
"<table cellpadding=\"2\">"); "<table class=\"CELLS_PAD_2\">");
/***** Put a selector for the type of average *****/ /***** Put a selector for the type of average *****/
Pho_PutSelectorForTypeOfAvg (); Pho_PutSelectorForTypeOfAvg ();
@ -1874,7 +1874,7 @@ static void Pho_ShowOrPrintListDegrees (Pho_AvgPhotoSeeOrPrint_t SeeOrPrint)
if (SeeOrPrint == Pho_DEGREES_SEE) if (SeeOrPrint == Pho_DEGREES_SEE)
Lay_StartRoundFrameTable10 (NULL,0,NULL); Lay_StartRoundFrameTable10 (NULL,0,NULL);
else else
fprintf (Gbl.F.Out,"<table cellpadding=\"0\">"); fprintf (Gbl.F.Out,"<table>");
/***** Write heading *****/ /***** Write heading *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"

View File

@ -377,7 +377,8 @@ void Prf_PutIconsToSelectSideCols (void)
unsigned SideCols; unsigned SideCols;
extern const char *Txt_LAYOUT_SIDE_COLUMNS[4]; extern const char *Txt_LAYOUT_SIDE_COLUMNS[4];
fprintf (Gbl.F.Out,"<table cellpadding=\"1\"><tr>"); fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_1\">"
"<tr>");
for (SideCols = 0; for (SideCols = 0;
SideCols <= 3; SideCols <= 3;
SideCols++) SideCols++)
@ -396,7 +397,8 @@ void Prf_PutIconsToSelectSideCols (void)
Txt_LAYOUT_SIDE_COLUMNS[SideCols], Txt_LAYOUT_SIDE_COLUMNS[SideCols],
Txt_LAYOUT_SIDE_COLUMNS[SideCols]); Txt_LAYOUT_SIDE_COLUMNS[SideCols]);
} }
fprintf (Gbl.F.Out,"</tr></table>"); fprintf (Gbl.F.Out,"</tr>"
"</table>");
} }
/*****************************************************************************/ /*****************************************************************************/
@ -579,7 +581,7 @@ static void Prf_PutFormPublicPhoto (void)
/***** Start form *****/ /***** Start form *****/
Act_FormStart (ActChgPubPho); Act_FormStart (ActChgPubPho);
fprintf (Gbl.F.Out,"<table cellpadding=\"0\" style=\"border-spacing:2px;\">" fprintf (Gbl.F.Out,"<table style=\"border-spacing:2px;\">"
"<tr>"); "<tr>");
/***** Checkbox to select between public or private photo *****/ /***** Checkbox to select between public or private photo *****/

View File

@ -1498,7 +1498,7 @@ void Rec_ShowCrsRecord (Rec_RecordViewType_t TypeOfView,struct UsrData *UsrDat)
/***** Header *****/ /***** Header *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"left\" colspan=\"2\" valign=\"top\">" "<td align=\"left\" colspan=\"2\" valign=\"top\">"
"<table cellpadding=\"0\" width=\"100%%\">" "<table width=\"100%%\">"
"<tr>" "<tr>"
"<td align=\"left\" width=\"%u\">", "<td align=\"left\" width=\"%u\">",
Rec_DEGREE_LOGO_SIZE); Rec_DEGREE_LOGO_SIZE);
@ -2108,7 +2108,7 @@ void Rec_ShowCommonRecord (Rec_RecordViewType_t TypeOfView,
/***** Institution *****/ /***** Institution *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"left\" width=\"%u\" valign=\"middle\" colspan=\"2\">" "<td align=\"left\" width=\"%u\" valign=\"middle\" colspan=\"2\">"
"<table cellpadding=\"2\">" "<table class=\"CELLS_PAD_2\">"
"<tr>" "<tr>"
"<td align=\"center\" width=\"%u\" valign=\"middle\">", "<td align=\"center\" width=\"%u\" valign=\"middle\">",
Cols1and2Width, Cols1and2Width,

View File

@ -27,7 +27,6 @@
#include <linux/limits.h> // For PATH_MAX #include <linux/limits.h> // For PATH_MAX
#include <linux/stddef.h> // For NULL #include <linux/stddef.h> // For NULL
#include <locale.h> // For setlocale
#include <math.h> // For log10, floor, ceil, modf, sqrt... #include <math.h> // For log10, floor, ceil, modf, sqrt...
#include <stdlib.h> // For system, getenv, etc. #include <stdlib.h> // For system, getenv, etc.
#include <string.h> // For string functions #include <string.h> // For string functions
@ -395,7 +394,7 @@ void Sta_AskSeeCrsAccesses (void)
/***** Draw two class photographs with the users: one for teachers of the course and another one for students *****/ /***** Draw two class photographs with the users: one for teachers of the course and another one for students *****/
/* Start the table */ /* Start the table */
fprintf (Gbl.F.Out,"<div align=\"center\">" fprintf (Gbl.F.Out,"<div align=\"center\">"
"<table cellpadding=\"0\" style=\"border-spacing:4px;\">" "<table style=\"border-spacing:4px;\">"
"<tr>" "<tr>"
"<td colspan=\"2\" align=\"left\">"); "<td colspan=\"2\" align=\"left\">");
Lay_StartRoundFrameTable10 (NULL,0,NULL); Lay_StartRoundFrameTable10 (NULL,0,NULL);
@ -510,7 +509,7 @@ void Sta_AskSeeGblAccesses (void)
/***** Start form *****/ /***** Start form *****/
Act_FormStart (ActSeeAccGbl); Act_FormStart (ActSeeAccGbl);
fprintf (Gbl.F.Out,"<div align=\"center\">" fprintf (Gbl.F.Out,"<div align=\"center\">"
"<table cellpadding=\"2\">"); "<table class=\"CELLS_PAD_2\">");
/***** Start and end dates for the search *****/ /***** Start and end dates for the search *****/
Dat_WriteFormIniEndDates (); Dat_WriteFormIniEndDates ();
@ -1442,7 +1441,7 @@ static void Sta_ShowDetailedAccessesList (unsigned long NumRows,MYSQL_RES *mysql
/***** Put heading with backward and forward buttons *****/ /***** Put heading with backward and forward buttons *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"left\" colspan=\"7\">" "<td align=\"left\" colspan=\"7\">"
"<table width=\"100%%\" cellpadding=\"2\">" "<table width=\"100%%\" class=\"CELLS_PAD_2\">"
"<tr>"); "<tr>");
/* Put link to jump to previous page (older clicks) */ /* Put link to jump to previous page (older clicks) */
@ -2136,7 +2135,7 @@ static void Sta_DrawBarColors (Sta_ColorType_t ColorType,float MaxPagesGenerated
unsigned Interval,NumColor,R,G,B; unsigned Interval,NumColor,R,G,B;
/***** Write numbers from 0 to MaxPagesGenerated *****/ /***** Write numbers from 0 to MaxPagesGenerated *****/
fprintf (Gbl.F.Out,"<table width=\"100%%\" cellpadding=\"0\">" fprintf (Gbl.F.Out,"<table width=\"100%%\">"
"<tr>" "<tr>"
"<td align=\"left\" valign=\"bottom\" width=\"%u\" colspan=\"%u\" class=\"LOG\">0</td>", "<td align=\"left\" valign=\"bottom\" width=\"%u\" colspan=\"%u\" class=\"LOG\">0</td>",
(GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2,(GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2); (GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2,(GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2);

View File

@ -622,10 +622,10 @@ float Str_GetFloatNumFromStr (const char *Str)
if (Str) if (Str)
{ {
setlocale (LC_NUMERIC,"en_US.iso88591"); // To get the decimal point setlocale (LC_NUMERIC,"en_US.utf8"); // To get the decimal point
if (sscanf (Str,"%f",&Num) != 1) if (sscanf (Str,"%f",&Num) != 1)
Lay_ShowErrorAndExit ("Bad floating point format."); Lay_ShowErrorAndExit ("Bad floating point format.");
setlocale (LC_NUMERIC,"es_ES.iso88591"); setlocale (LC_NUMERIC,"es_ES.utf8");
} }
else // Str == NULL else // Str == NULL
Num = 0.0; Num = 0.0;

View File

@ -27,7 +27,6 @@
#include <linux/limits.h> // For PATH_MAX #include <linux/limits.h> // For PATH_MAX
#include <linux/stddef.h> // For NULL #include <linux/stddef.h> // For NULL
#include <locale.h> // For setlocale, LC_NUMERIC...
#include <stdlib.h> // For calloc #include <stdlib.h> // For calloc
#include <string.h> // For string functions #include <string.h> // For string functions
@ -702,7 +701,8 @@ static void Svy_PutFormsToRemEditOneSvy (long SvyCod,bool Visible)
extern const char *Txt_Hide; extern const char *Txt_Hide;
extern const char *Txt_Edit; extern const char *Txt_Edit;
fprintf (Gbl.F.Out,"<table cellpadding=\"4\"><tr>"); fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_4\">"
"<tr>");
/***** Put form to remove survey *****/ /***** Put form to remove survey *****/
fprintf (Gbl.F.Out,"<td align=\"left\">"); fprintf (Gbl.F.Out,"<td align=\"left\">");
@ -770,7 +770,8 @@ static void Svy_PutFormsToRemEditOneSvy (long SvyCod,bool Visible)
Txt_Edit, Txt_Edit,
Txt_Edit); Txt_Edit);
fprintf (Gbl.F.Out,"</tr></table>"); fprintf (Gbl.F.Out,"</tr>"
"</table>");
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1610,7 +1611,7 @@ void Svy_RequestCreatOrEditSvy (void)
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"right\" valign=\"top\" class=\"TIT_TBL\">%s:</td>" "<td align=\"right\" valign=\"top\" class=\"TIT_TBL\">%s:</td>"
"<td align=\"left\" valign=\"top\">" "<td align=\"left\" valign=\"top\">"
"<table cellpadding=\"2\">" "<table class=\"CELLS_PAD_2\">"
"<tr>" "<tr>"
"<td align=\"left\" valign=\"top\">", "<td align=\"left\" valign=\"top\">",
Dates[StartOrEndTime]); Dates[StartOrEndTime]);
@ -2459,7 +2460,7 @@ static void Svy_ShowFormEditOneQst (long SvyCod,struct SurveyQuestion *SvyQst,ch
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"left\"></td>" "<td align=\"left\"></td>"
"<td align=\"left\" valign=\"top\">" "<td align=\"left\" valign=\"top\">"
"<table cellpadding=\"2\">"); "<table class=\"CELLS_PAD_2\">");
for (NumAns = 0; for (NumAns = 0;
NumAns < Svy_MAX_ANSWERS_PER_QUESTION; NumAns < Svy_MAX_ANSWERS_PER_QUESTION;
NumAns++) NumAns++)
@ -2922,7 +2923,7 @@ static void Svy_ListSvyQuestions (struct Survey *Svy,struct SurveyQuestion *SvyQ
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"center\" class=\"DAT\">"); "<td align=\"center\" class=\"DAT\">");
Lay_WriteTitle (Txt_Survey_questions); Lay_WriteTitle (Txt_Survey_questions);
fprintf (Gbl.F.Out,"<table cellpadding=\"4\">"); fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_4\">");
if (NumQsts) if (NumQsts)
{ {
@ -3107,7 +3108,7 @@ static void Svy_WriteAnswersOfAQst (struct Survey *Svy,struct SurveyQuestion *Sv
NumAnswers = Svy_GetAnswersQst (SvyQst->QstCod,&mysql_res); // Result: AnsInd,NumUsrs,Answer NumAnswers = Svy_GetAnswersQst (SvyQst->QstCod,&mysql_res); // Result: AnsInd,NumUsrs,Answer
/***** Write the answers *****/ /***** Write the answers *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"4\" width=\"100%%\">"); fprintf (Gbl.F.Out,"<table width=\"100%%\" class=\"CELLS_PAD_4\">");
for (NumAns = 0; for (NumAns = 0;
NumAns < NumAnswers; NumAns < NumAnswers;
NumAns++) NumAns++)

View File

@ -146,7 +146,7 @@ void Syl_EditSyllabus (void)
Lay_StartRoundFrameTable10 (NULL,0,Txt_INFO_TITLE[InfoType]); Lay_StartRoundFrameTable10 (NULL,0,Txt_INFO_TITLE[InfoType]);
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"left\">" "<td align=\"left\">"
"<table cellpadding=\"1\" width=\"100%%\">"); "<table width=\"100%%\" class=\"CELLS_PAD_1\">");
/***** Write the current syllabus *****/ /***** Write the current syllabus *****/
Syl_ShowSyllabus (InfoType); Syl_ShowSyllabus (InfoType);

View File

@ -1015,7 +1015,7 @@ static void Tst_UpdateScoreQst (long QstCod,float ScoreThisQst,bool AnswerIsNotB
char Query[512]; char Query[512];
/***** Update number of clicks and score of the question *****/ /***** Update number of clicks and score of the question *****/
setlocale (LC_NUMERIC,"en_US.iso88591"); // To print the floating point as a dot setlocale (LC_NUMERIC,"en_US.utf8"); // To print the floating point as a dot
if (AnswerIsNotBlank) if (AnswerIsNotBlank)
sprintf (Query,"UPDATE tst_questions" sprintf (Query,"UPDATE tst_questions"
" SET NumHits=NumHits+1,NumHitsNotBlank=NumHitsNotBlank+1,Score=Score+(%lf)" " SET NumHits=NumHits+1,NumHitsNotBlank=NumHitsNotBlank+1,Score=Score+(%lf)"
@ -1026,7 +1026,7 @@ static void Tst_UpdateScoreQst (long QstCod,float ScoreThisQst,bool AnswerIsNotB
" SET NumHits=NumHits+1" " SET NumHits=NumHits+1"
" WHERE QstCod='%ld'", " WHERE QstCod='%ld'",
QstCod); QstCod);
setlocale (LC_NUMERIC,"es_ES.iso88591"); // Return to spanish system (TODO: this should be internationalized!!!!!!!) setlocale (LC_NUMERIC,"es_ES.utf8"); // Return to spanish system (TODO: this should be internationalized!!!!!!!)
DB_QueryUPDATE (Query,"can not update the score of a question"); DB_QueryUPDATE (Query,"can not update the score of a question");
} }
@ -1102,7 +1102,7 @@ void Tst_ShowFormAskEditTsts (void)
Tst_ShowFormAnswerTypes (); Tst_ShowFormAnswerTypes ();
/***** Starting and ending dates in the search *****/ /***** Starting and ending dates in the search *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"2\">"); fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">");
Dat_WriteFormIniEndDates (); Dat_WriteFormIniEndDates ();
fprintf (Gbl.F.Out,"</table>"); fprintf (Gbl.F.Out,"</table>");
@ -1593,7 +1593,7 @@ static void Tst_ShowFormConfigTst (void)
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"right\" class=\"%s\">%s:</td>" "<td align=\"right\" class=\"%s\">%s:</td>"
"<td align=\"left\">" "<td align=\"left\">"
"<table cellpadding=\"0\" style=\"border-spacing:2px;\">", "<table style=\"border-spacing:2px;\">",
The_ClassFormul[Gbl.Prefs.Theme], The_ClassFormul[Gbl.Prefs.Theme],
Txt_No_of_questions); Txt_No_of_questions);
@ -2529,10 +2529,10 @@ static void Tst_ListOneOrMoreQuestionsToEdit (unsigned long NumRows,MYSQL_RES *m
Lay_ShowErrorAndExit ("Wrong number of hits not blank to a question."); Lay_ShowErrorAndExit ("Wrong number of hits not blank to a question.");
/* Get the acumulated score of the question (row[8]) */ /* Get the acumulated score of the question (row[8]) */
setlocale (LC_NUMERIC,"en_US.iso88591"); // To get decimal point setlocale (LC_NUMERIC,"en_US.utf8"); // To get decimal point
if (sscanf (row[8],"%lf",&TotalScoreThisQst) != 1) if (sscanf (row[8],"%lf",&TotalScoreThisQst) != 1)
Lay_ShowErrorAndExit ("Wrong score of a question."); Lay_ShowErrorAndExit ("Wrong score of a question.");
setlocale (LC_NUMERIC,"es_ES.iso88591"); // Return to spanish system (TODO: this should be internationalized!!!!!!!) setlocale (LC_NUMERIC,"es_ES.utf8"); // Return to spanish system (TODO: this should be internationalized!!!!!!!)
/* Write number of times this question has been answered */ /* Write number of times this question has been answered */
fprintf (Gbl.F.Out,"<td align=\"center\" valign=\"top\" bgcolor=\"%s\" class=\"DAT_SMALL\">%lu</td>", fprintf (Gbl.F.Out,"<td align=\"center\" valign=\"top\" bgcolor=\"%s\" class=\"DAT_SMALL\">%lu</td>",
@ -2663,7 +2663,7 @@ static void Tst_WriteAnswersOfAQstEdit (long QstCod)
case Tst_ANS_UNIQUE_CHOICE: case Tst_ANS_UNIQUE_CHOICE:
case Tst_ANS_MULTIPLE_CHOICE: case Tst_ANS_MULTIPLE_CHOICE:
case Tst_ANS_TEXT: case Tst_ANS_TEXT:
fprintf (Gbl.F.Out,"<table cellpadding=\"2\">"); fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">");
for (NumOpt = 0; for (NumOpt = 0;
NumOpt < Gbl.Test.Answer.NumOptions; NumOpt < Gbl.Test.Answer.NumOptions;
NumOpt++) NumOpt++)
@ -2886,7 +2886,8 @@ static void Tst_WriteTFAnsAssessExam (unsigned NumQst,MYSQL_RES *mysql_res,
} }
/***** Header with the title of each column *****/ /***** Header with the title of each column *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\"><tr>"); fprintf (Gbl.F.Out,"<table>"
"<tr>");
Tst_WriteHeadUserCorrect (); Tst_WriteHeadUserCorrect ();
fprintf (Gbl.F.Out,"</tr>"); fprintf (Gbl.F.Out,"</tr>");
@ -2943,7 +2944,7 @@ static void Tst_WriteChoiceAnsSeeExam (unsigned NumQst,long QstCod,bool Shuffle)
char ParamName[3+6+1]; char ParamName[3+6+1];
/***** Start of table *****/ /***** Start of table *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\">"); fprintf (Gbl.F.Out,"<table>");
/***** Get answers of a question from database *****/ /***** Get answers of a question from database *****/
Gbl.Test.Answer.NumOptions = Tst_GetAnswersQst (QstCod,&mysql_res,Shuffle); // Result: AnsInd,Answer,Correct Gbl.Test.Answer.NumOptions = Tst_GetAnswersQst (QstCod,&mysql_res,Shuffle); // Result: AnsInd,Answer,Correct
@ -3103,7 +3104,7 @@ static void Tst_WriteChoiceAnsAssessExam (unsigned NumQst,MYSQL_RES *mysql_res,
} }
/***** Start of table *****/ /***** Start of table *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\">" fprintf (Gbl.F.Out,"<table>"
"<tr>"); "<tr>");
Tst_WriteHeadUserCorrect (); Tst_WriteHeadUserCorrect ();
fprintf (Gbl.F.Out,"<td align=\"left\"></td>" fprintf (Gbl.F.Out,"<td align=\"left\"></td>"
@ -3293,7 +3294,7 @@ static void Tst_WriteTextAnsAssessExam (unsigned NumQst,MYSQL_RES *mysql_res,
} }
/***** Header with the title of each column *****/ /***** Header with the title of each column *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\">" fprintf (Gbl.F.Out,"<table>"
"<tr>"); "<tr>");
Tst_WriteHeadUserCorrect (); Tst_WriteHeadUserCorrect ();
fprintf (Gbl.F.Out,"</tr>"); fprintf (Gbl.F.Out,"</tr>");
@ -3340,7 +3341,7 @@ static void Tst_WriteTextAnsAssessExam (unsigned NumQst,MYSQL_RES *mysql_res,
Gbl.Test.Config.FeedbackType == Tst_FEEDBACK_FULL_FEEDBACK) Gbl.Test.Config.FeedbackType == Tst_FEEDBACK_FULL_FEEDBACK)
{ {
fprintf (Gbl.F.Out,"<td align=\"center\" valign=\"top\">" fprintf (Gbl.F.Out,"<td align=\"center\" valign=\"top\">"
"<table cellpadding=\"0\">"); "<table>");
for (NumOpt = 0; for (NumOpt = 0;
NumOpt < Gbl.Test.Answer.NumOptions; NumOpt < Gbl.Test.Answer.NumOptions;
NumOpt++) NumOpt++)
@ -3436,7 +3437,7 @@ static void Tst_WriteIntAnsAssessExam (unsigned NumQst,MYSQL_RES *mysql_res,
Lay_ShowErrorAndExit ("Wrong integer answer."); Lay_ShowErrorAndExit ("Wrong integer answer.");
/***** Header with the title of each column *****/ /***** Header with the title of each column *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\">" fprintf (Gbl.F.Out,"<table>"
"<tr>"); "<tr>");
Tst_WriteHeadUserCorrect (); Tst_WriteHeadUserCorrect ();
fprintf (Gbl.F.Out,"</tr>"); fprintf (Gbl.F.Out,"</tr>");
@ -3551,7 +3552,7 @@ static void Tst_WriteFloatAnsAssessExam (unsigned NumQst,MYSQL_RES *mysql_res,
} }
/***** Header with the title of each column *****/ /***** Header with the title of each column *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\">" fprintf (Gbl.F.Out,"<table>"
"<tr>"); "<tr>");
Tst_WriteHeadUserCorrect (); Tst_WriteHeadUserCorrect ();
fprintf (Gbl.F.Out,"</tr>"); fprintf (Gbl.F.Out,"</tr>");
@ -3711,7 +3712,7 @@ static void Tst_GetAndWriteTagsQst (long QstCod)
if ((NumRows = Tst_GetTagsQst (QstCod,&mysql_res))) // Result: TagTxt if ((NumRows = Tst_GetTagsQst (QstCod,&mysql_res))) // Result: TagTxt
{ {
/***** Write the tags *****/ /***** Write the tags *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\">"); fprintf (Gbl.F.Out,"<table>");
for (NumRow = 0; for (NumRow = 0;
NumRow < NumRows; NumRow < NumRows;
NumRow++) NumRow++)
@ -4105,7 +4106,7 @@ static void Tst_PutFormEditOneQst (char *Stem,char *Feedback)
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"right\" valign=\"top\" class=\"%s\">%s:</td>" "<td align=\"right\" valign=\"top\" class=\"%s\">%s:</td>"
"<td align=\"left\" valign=\"top\">" "<td align=\"left\" valign=\"top\">"
"<table cellpadding=\"0\">", "<table>",
The_ClassFormul[Gbl.Prefs.Theme],Txt_Tags); The_ClassFormul[Gbl.Prefs.Theme],Txt_Tags);
for (NumTag = 0; for (NumTag = 0;
NumTag < Tst_MAX_TAGS_PER_QUESTION; NumTag < Tst_MAX_TAGS_PER_QUESTION;
@ -4247,7 +4248,7 @@ static void Tst_PutFormEditOneQst (char *Stem,char *Feedback)
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"left\"></td>" "<td align=\"left\"></td>"
"<td align=\"left\" valign=\"top\">" "<td align=\"left\" valign=\"top\">"
"<table cellpadding=\"0\">" "<table>"
"<tr>" "<tr>"
"<td align=\"left\" valign=\"top\" class=\"%s\">" "<td align=\"left\" valign=\"top\" class=\"%s\">"
"<input type=\"radio\" name=\"AnsTF\" value=\"T\"", "<input type=\"radio\" name=\"AnsTF\" value=\"T\"",
@ -4288,7 +4289,7 @@ static void Tst_PutFormEditOneQst (char *Stem,char *Feedback)
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"left\"></td>" "<td align=\"left\"></td>"
"<td align=\"left\" valign=\"top\">" "<td align=\"left\" valign=\"top\">"
"<table cellpadding=\"0\">" "<table>"
"<tr>" "<tr>"
"<td></td>" "<td></td>"
"<td align=\"left\" class=\"%s\">%s</td>" "<td align=\"left\" class=\"%s\">%s</td>"
@ -4833,13 +4834,13 @@ double Tst_GetFloatAnsFromStr (char *Str)
Str_ConvertStrFloatCommaToStrFloatPoint (Str); Str_ConvertStrFloatCommaToStrFloatPoint (Str);
/***** The string is "scanned" in floating point (it must have a point, not a colon as decimal separator) *****/ /***** The string is "scanned" in floating point (it must have a point, not a colon as decimal separator) *****/
setlocale (LC_NUMERIC,"en_US.iso88591"); // To get decimal point setlocale (LC_NUMERIC,"en_US.utf8"); // To get decimal point
if (sscanf (Str,"%lg",&DoubleNum) != 1) // If the string does not hold a valid floating point number... if (sscanf (Str,"%lg",&DoubleNum) != 1) // If the string does not hold a valid floating point number...
{ {
DoubleNum = 0.0; // ...the number is reset to 0 DoubleNum = 0.0; // ...the number is reset to 0
Str[0] = '\0'; // ...and the string is reset to "" Str[0] = '\0'; // ...and the string is reset to ""
} }
setlocale (LC_NUMERIC,"es_ES.iso88591"); // Return to spanish system (TODO: this should be internationalized!!!!!!!) setlocale (LC_NUMERIC,"es_ES.utf8"); // Return to spanish system (TODO: this should be internationalized!!!!!!!)
return DoubleNum; return DoubleNum;
} }
@ -5152,7 +5153,7 @@ static void Tst_InsertAnswersIntoDB (void)
DB_QueryINSERT (Query,"can not create answer"); DB_QueryINSERT (Query,"can not create answer");
break; break;
case Tst_ANS_FLOAT: case Tst_ANS_FLOAT:
setlocale (LC_NUMERIC,"en_US.iso88591"); // To print the floating point as a dot setlocale (LC_NUMERIC,"en_US.utf8"); // To print the floating point as a dot
for (i = 0; for (i = 0;
i < 2; i < 2;
i++) i++)
@ -5163,7 +5164,7 @@ static void Tst_InsertAnswersIntoDB (void)
Gbl.Test.Answer.FloatingPoint[i]); Gbl.Test.Answer.FloatingPoint[i]);
DB_QueryINSERT (Query,"can not create answer"); DB_QueryINSERT (Query,"can not create answer");
} }
setlocale (LC_NUMERIC,"es_ES.iso88591"); // Return to spanish system (TODO: this should be internationalized!!!!!!!) setlocale (LC_NUMERIC,"es_ES.utf8"); // Return to spanish system (TODO: this should be internationalized!!!!!!!)
break; break;
case Tst_ANS_TRUE_FALSE: case Tst_ANS_TRUE_FALSE:
sprintf (Query,"INSERT INTO tst_answers (QstCod,AnsInd,Answer,Feedback,Correct)" sprintf (Query,"INSERT INTO tst_answers (QstCod,AnsInd,Answer,Feedback,Correct)"
@ -5437,10 +5438,10 @@ static unsigned Tst_GetNumTstQuestions (Sco_Scope_t Scope,Tst_AnswerType_t AnsTy
if (sscanf (row[1],"%lu",&(Stats->NumHits)) != 1) if (sscanf (row[1],"%lu",&(Stats->NumHits)) != 1)
Lay_ShowErrorAndExit ("Error when getting total number of hits in test questions."); Lay_ShowErrorAndExit ("Error when getting total number of hits in test questions.");
setlocale (LC_NUMERIC,"en_US.iso88591"); // To get decimal point setlocale (LC_NUMERIC,"en_US.utf8"); // To get decimal point
if (sscanf (row[2],"%lf",&(Stats->TotalScore)) != 1) if (sscanf (row[2],"%lf",&(Stats->TotalScore)) != 1)
Lay_ShowErrorAndExit ("Error when getting total score in test questions."); Lay_ShowErrorAndExit ("Error when getting total score in test questions.");
setlocale (LC_NUMERIC,"es_ES.iso88591"); // Return to spanish system (TODO: this should be internationalized!!!!!!!) setlocale (LC_NUMERIC,"es_ES.utf8"); // Return to spanish system (TODO: this should be internationalized!!!!!!!)
} }
else else
{ {
@ -5738,7 +5739,7 @@ void Tst_SelUsrsToSeeUsrsTstExams (void)
Act_FormStart (ActSeeUsrTstExa); Act_FormStart (ActSeeUsrTstExa);
Grp_PutParamsCodGrps (); Grp_PutParamsCodGrps ();
fprintf (Gbl.F.Out,"<div align=\"center\">" fprintf (Gbl.F.Out,"<div align=\"center\">"
"<table cellpadding=\"0\" style=\"border-spacing:4px;\">" "<table style=\"border-spacing:4px;\">"
"<tr>" "<tr>"
"<td colspan=\"2\" align=\"left\">"); "<td colspan=\"2\" align=\"left\">");
@ -5787,7 +5788,7 @@ void Tst_SelDatesToSeeMyTstExams (void)
/***** Starting and ending dates in the search *****/ /***** Starting and ending dates in the search *****/
fprintf (Gbl.F.Out,"<div align=\"center\">" fprintf (Gbl.F.Out,"<div align=\"center\">"
"<table cellpadding=\"2\">"); "<table class=\"CELLS_PAD_2\">");
Dat_WriteFormIniEndDates (); Dat_WriteFormIniEndDates ();
fprintf (Gbl.F.Out,"</table>" fprintf (Gbl.F.Out,"</table>"
"</div>"); "</div>");
@ -5826,13 +5827,13 @@ static void Tst_StoreScoreOfTestExamInDB (long TstCod,
char Query[256]; char Query[256];
/***** Update score in test exam *****/ /***** Update score in test exam *****/
setlocale (LC_NUMERIC,"en_US.iso88591"); // To print the floating point as a dot setlocale (LC_NUMERIC,"en_US.utf8"); // To print the floating point as a dot
sprintf (Query,"UPDATE tst_exams" sprintf (Query,"UPDATE tst_exams"
" SET NumQstsNotBlank='%u',Score='%lf'" " SET NumQstsNotBlank='%u',Score='%lf'"
" WHERE TstCod='%ld'", " WHERE TstCod='%ld'",
NumQstsNotBlank,Score, NumQstsNotBlank,Score,
TstCod); TstCod);
setlocale (LC_NUMERIC,"es_ES.iso88591"); // Return to spanish system (TODO: this should be internationalized!!!!!!!) setlocale (LC_NUMERIC,"es_ES.utf8"); // Return to spanish system (TODO: this should be internationalized!!!!!!!)
DB_QueryUPDATE (Query,"can not update result of test exam"); DB_QueryUPDATE (Query,"can not update result of test exam");
} }
@ -6040,7 +6041,7 @@ static void Tst_ShowResultsOfTestExams (struct UsrData *UsrDat)
NumQstsNotBlankInThisExam = 0; NumQstsNotBlankInThisExam = 0;
/* Get score (row[5]) */ /* Get score (row[5]) */
setlocale (LC_NUMERIC,"en_US.iso88591"); // To get decimal point setlocale (LC_NUMERIC,"en_US.utf8"); // To get decimal point
if (sscanf (row[5],"%lf",&ScoreInThisExam) == 1) if (sscanf (row[5],"%lf",&ScoreInThisExam) == 1)
{ {
if (Gbl.Test.AllowTeachers) if (Gbl.Test.AllowTeachers)
@ -6048,7 +6049,7 @@ static void Tst_ShowResultsOfTestExams (struct UsrData *UsrDat)
} }
else else
ScoreInThisExam = 0.0; ScoreInThisExam = 0.0;
setlocale (LC_NUMERIC,"es_ES.iso88591"); // Return to spanish system (TODO: this should be internationalized!!!!!!!) setlocale (LC_NUMERIC,"es_ES.utf8"); // Return to spanish system (TODO: this should be internationalized!!!!!!!)
/* Write number of questions */ /* Write number of questions */
fprintf (Gbl.F.Out,"<td align=\"right\" valign=\"top\" bgcolor=\"%s\" class=\"%s\">", fprintf (Gbl.F.Out,"<td align=\"right\" valign=\"top\" bgcolor=\"%s\" class=\"%s\">",
@ -6544,10 +6545,10 @@ static void Tst_GetExamDataByTstCod (long TstCod,char *TstTime,unsigned *NumQsts
*NumQstsNotBlank = 0; *NumQstsNotBlank = 0;
/* Get score (row[5]) */ /* Get score (row[5]) */
setlocale (LC_NUMERIC,"en_US.iso88591"); // To get decimal point setlocale (LC_NUMERIC,"en_US.utf8"); // To get decimal point
if (sscanf (row[5],"%lf",Score) != 1) if (sscanf (row[5],"%lf",Score) != 1)
*Score = 0.0; *Score = 0.0;
setlocale (LC_NUMERIC,"es_ES.iso88591"); // Return to spanish system (TODO: this should be internationalized!!!!!!!) setlocale (LC_NUMERIC,"es_ES.utf8"); // Return to spanish system (TODO: this should be internationalized!!!!!!!)
} }
/***** Free structure that stores the query result *****/ /***** Free structure that stores the query result *****/
@ -6570,7 +6571,7 @@ static void Tst_StoreOneExamQstInDB (long TstCod,long QstCod,unsigned NumQst,dou
Par_ReplaceSeparatorMultipleByComma (Gbl.Test.StrAnswersOneQst[NumQst],Answers); Par_ReplaceSeparatorMultipleByComma (Gbl.Test.StrAnswersOneQst[NumQst],Answers);
/***** Insert question and user's answers into database *****/ /***** Insert question and user's answers into database *****/
setlocale (LC_NUMERIC,"en_US.iso88591"); // To print the floating point as a dot setlocale (LC_NUMERIC,"en_US.utf8"); // To print the floating point as a dot
sprintf (Query,"INSERT INTO tst_exam_questions" sprintf (Query,"INSERT INTO tst_exam_questions"
" (TstCod,QstCod,QstInd,Score,Indexes,Answers)" " (TstCod,QstCod,QstInd,Score,Indexes,Answers)"
" VALUES ('%ld','%ld','%u','%lf','%s','%s')", " VALUES ('%ld','%ld','%u','%lf','%s','%s')",
@ -6579,7 +6580,7 @@ static void Tst_StoreOneExamQstInDB (long TstCod,long QstCod,unsigned NumQst,dou
Score, Score,
Indexes, Indexes,
Answers); Answers);
setlocale (LC_NUMERIC,"es_ES.iso88591"); // Return to spanish system (TODO: this should be internationalized!!!!!!!) setlocale (LC_NUMERIC,"es_ES.utf8"); // Return to spanish system (TODO: this should be internationalized!!!!!!!)
DB_QueryINSERT (Query,"can not insert a question of an exam"); DB_QueryINSERT (Query,"can not insert a question of an exam");
} }

View File

@ -1028,7 +1028,7 @@ static void TsI_WriteRowImportedQst (struct XMLElement *StemElem,
if (Gbl.Test.NumTags) if (Gbl.Test.NumTags)
{ {
/***** Write the tags *****/ /***** Write the tags *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\">"); fprintf (Gbl.F.Out,"<table>");
for (NumTag = 0; for (NumTag = 0;
NumTag < Gbl.Test.NumTags; NumTag < Gbl.Test.NumTags;
NumTag++) NumTag++)
@ -1089,7 +1089,7 @@ static void TsI_WriteRowImportedQst (struct XMLElement *StemElem,
case Tst_ANS_UNIQUE_CHOICE: case Tst_ANS_UNIQUE_CHOICE:
case Tst_ANS_MULTIPLE_CHOICE: case Tst_ANS_MULTIPLE_CHOICE:
case Tst_ANS_TEXT: case Tst_ANS_TEXT:
fprintf (Gbl.F.Out,"<table cellpadding=\"0\">"); fprintf (Gbl.F.Out,"<table>");
for (NumOpt = 0; for (NumOpt = 0;
NumOpt < Gbl.Test.Answer.NumOptions; NumOpt < Gbl.Test.Answer.NumOptions;
NumOpt++) NumOpt++)

View File

@ -232,7 +232,7 @@ void The_PutIconsToSelectTheme (void)
{ {
The_Theme_t Theme; The_Theme_t Theme;
fprintf (Gbl.F.Out,"<table cellpadding=\"1\">" fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_1\">"
"<tr>"); "<tr>");
for (Theme = (The_Theme_t) 0; for (Theme = (The_Theme_t) 0;
Theme < The_NUM_THEMES; Theme < The_NUM_THEMES;

View File

@ -779,8 +779,7 @@ static void TT_DrawTimeTable (void)
} }
/***** Table start *****/ /***** Table start *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\"" fprintf (Gbl.F.Out,"<table style=\"min-width:520px;\">");
" style=\"min-width:520px;\">");
/***** Top row used for column adjustement *****/ /***** Top row used for column adjustement *****/
TT_TimeTableDrawAdjustRow (); TT_TimeTableDrawAdjustRow ();

View File

@ -5071,7 +5071,7 @@ void Usr_ListAllDataGsts (void)
/***** Start table with list of guests *****/ /***** Start table with list of guests *****/
/* Start row */ /* Start row */
fprintf (Gbl.F.Out,"<table cellpadding=\"0\" width=\"100%%\">" fprintf (Gbl.F.Out,"<table width=\"100%%\">"
"<tr>"); "<tr>");
/* Columns for the data */ /* Columns for the data */
@ -5203,7 +5203,7 @@ void Usr_ListAllDataStds (void)
Lay_ShowErrorAndExit ("Not enough memory to store names of groups."); Lay_ShowErrorAndExit ("Not enough memory to store names of groups.");
/***** Start table with list of students *****/ /***** Start table with list of students *****/
fprintf (Gbl.F.Out,"<table cellpadding=\"0\" width=\"100%%\">"); fprintf (Gbl.F.Out,"<table width=\"100%%\">");
if (!Gbl.Usrs.ClassPhoto.AllGroups) if (!Gbl.Usrs.ClassPhoto.AllGroups)
{ {
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
@ -5431,7 +5431,7 @@ void Usr_ListAllDataTchs (void)
/***** Start table with list of teachers *****/ /***** Start table with list of teachers *****/
/* Start row */ /* Start row */
fprintf (Gbl.F.Out,"<table cellpadding=\"0\" width=\"100%%\">" fprintf (Gbl.F.Out,"<table width=\"100%%\">"
"<tr>"); "<tr>");
for (NumCol = (Gbl.Usrs.Listing.WithPhotos ? 0 : for (NumCol = (Gbl.Usrs.Listing.WithPhotos ? 0 :
1); 1);

View File

@ -532,7 +532,7 @@ static void ZIP_ShowLinkToDownloadZIP (const char *FileName,const char *URL,
Lay_StartRoundFrameTable10Shadow (NULL,0); Lay_StartRoundFrameTable10Shadow (NULL,0);
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td align=\"center\">" "<td align=\"center\">"
"<table cellpadding=\"2\">"); "<table class=\"CELLS_PAD_2\">");
/***** Link to download the file *****/ /***** Link to download the file *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"