From 9c1ed5c2830b6b19d7855f5a9a2e417c91bb9dbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Sun, 10 Nov 2019 16:41:47 +0100 Subject: [PATCH] Version19.61.6 --- swad_HTML.c | 22 ++++++++++++++++++++++ swad_HTML.h | 3 +++ swad_agenda.c | 4 ++-- swad_assignment.c | 4 ++-- swad_attendance.c | 4 ++-- swad_centre.c | 4 ++-- swad_changelog.h | 3 ++- swad_classroom.c | 4 ++-- swad_country.c | 4 ++-- swad_degree_type.c | 4 ++-- swad_department.c | 4 ++-- swad_forum.c | 4 ++-- swad_game.c | 4 ++-- swad_group.c | 2 +- swad_holiday.c | 4 ++-- swad_institution.c | 4 ++-- swad_mail.c | 6 +++--- swad_match.c | 2 +- swad_place.c | 4 ++-- swad_project.c | 4 ++-- swad_statistic.c | 2 +- swad_survey.c | 6 +++--- swad_test.c | 14 +++++++------- 23 files changed, 71 insertions(+), 45 deletions(-) diff --git a/swad_HTML.c b/swad_HTML.c index 0e644865..54a41599 100644 --- a/swad_HTML.c +++ b/swad_HTML.c @@ -73,6 +73,7 @@ static unsigned HTM_BUTTON_NestingLevel = 0; static unsigned HTM_TEXTAREA_NestingLevel = 0; static unsigned HTM_SELECT_NestingLevel = 0; static unsigned HTM_OPTGROUP_NestingLevel = 0; +static unsigned HTM_U_NestingLevel = 0; /*****************************************************************************/ /***************************** Private prototypes ****************************/ @@ -1496,6 +1497,27 @@ void HTM_IMG (const char *URL,const char *Icon,const char *Title, fprintf (Gbl.F.Out," />"); } +/*****************************************************************************/ +/******************************* Underlines **********************************/ +/*****************************************************************************/ + +void HTM_U_Begin (void) + { + HTM_U_Begin (); + + HTM_U_NestingLevel++; + } + +void HTM_U_End (void) + { + if (HTM_U_NestingLevel == 0) // No U open + Ale_ShowAlert (Ale_ERROR,"Trying to close unopened U."); + + HTM_U_End (); + + HTM_U_NestingLevel--; + } + /*****************************************************************************/ /****************************** Breaking lines *******************************/ /*****************************************************************************/ diff --git a/swad_HTML.h b/swad_HTML.h index 6c9295d7..98fb5d73 100644 --- a/swad_HTML.h +++ b/swad_HTML.h @@ -147,6 +147,9 @@ void HTM_OPTION (HTM_Type_t Type,const void *ValuePtr,bool Selected,bool Disable void HTM_IMG (const char *URL,const char *Icon,const char *Title, const char *fmt,...); +void HTM_U_Begin (void); +void HTM_U_End (void); + void HTM_BR (void); void HTM_Txt (const char *Txt); diff --git a/swad_agenda.c b/swad_agenda.c index c2aa7532..989e1d6a 100644 --- a/swad_agenda.c +++ b/swad_agenda.c @@ -591,10 +591,10 @@ static void Agd_WriteHeaderListEvents (Agd_AgendaType_t AgendaType) Frm_LinkFormSubmit (Txt_START_END_TIME_HELP[Order],"TIT_TBL",NULL); if (Order == Gbl.Agenda.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); HTM_Txt (Txt_START_END_TIME[Order]); if (Order == Gbl.Agenda.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); Frm_EndForm (); diff --git a/swad_assignment.c b/swad_assignment.c index 44caa4e9..ca2fa0df 100644 --- a/swad_assignment.c +++ b/swad_assignment.c @@ -221,13 +221,13 @@ static void Asg_PutHeadForSeeing (bool PrintView) Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order); Frm_LinkFormSubmit (Txt_START_END_TIME_HELP[Order],"TIT_TBL",NULL); if (Order == Gbl.Asgs.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); } HTM_Txt (Txt_START_END_TIME[Order]); if (!PrintView) { if (Order == Gbl.Asgs.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); Frm_EndForm (); } diff --git a/swad_attendance.c b/swad_attendance.c index 66b44946..a7e2fbbd 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -255,10 +255,10 @@ static void Att_ShowAllAttEvents (void) Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order); Frm_LinkFormSubmit (Txt_START_END_TIME_HELP[Order],"TIT_TBL",NULL); if (Order == Gbl.AttEvents.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); HTM_Txt (Txt_START_END_TIME[Order]); if (Order == Gbl.AttEvents.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); Frm_EndForm (); diff --git a/swad_centre.c b/swad_centre.c index ad1dd5bc..36174b5c 100644 --- a/swad_centre.c +++ b/swad_centre.c @@ -2588,13 +2588,13 @@ static void Ctr_PutHeadCentresForSeeing (bool OrderSelectable) Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order); Frm_LinkFormSubmit (Txt_CENTRES_HELP_ORDER[Order],"TIT_TBL",NULL); if (Order == Gbl.Hierarchy.Ins.Ctrs.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); } HTM_Txt (Txt_CENTRES_ORDER[Order]); if (OrderSelectable) { if (Order == Gbl.Hierarchy.Ins.Ctrs.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); Frm_EndForm (); } diff --git a/swad_changelog.h b/swad_changelog.h index ee762b43..e40d2460 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -487,7 +487,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 19.61.5 (2019-11-10)" +#define Log_PLATFORM_VERSION "SWAD 19.61.6 (2019-11-10)" #define CSS_FILE "swad19.47.css" #define JS_FILE "swad19.39.js" /* @@ -495,6 +495,7 @@ ps2pdf source.ps destination.pdf // TODO: Impedir la creación y edición de proyectos si no son editables. // TODO: Importante: filtrar proyectos por usuarios (igual que en trabajos o en asistencia) + Version 19.61.6: Nov 10, 2019 Code refactoring in HTML underlines. (246327 lines) Version 19.61.5: Nov 10, 2019 Code refactoring in HTML text printing. (246308 lines) Version 19.61.4: Nov 10, 2019 Code refactoring in HTML text printing. (246303 lines) Version 19.61.3: Nov 10, 2019 Code refactoring in HTML long printing. (246297 lines) diff --git a/swad_classroom.c b/swad_classroom.c index b5fbae2c..5a19065c 100644 --- a/swad_classroom.c +++ b/swad_classroom.c @@ -126,10 +126,10 @@ void Cla_SeeClassrooms (void) Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order); Frm_LinkFormSubmit (Txt_CLASSROOMS_HELP_ORDER[Order],"TIT_TBL",NULL); if (Order == Gbl.Classrooms.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); HTM_Txt (Txt_CLASSROOMS_ORDER[Order]); if (Order == Gbl.Classrooms.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); Frm_EndForm (); HTM_TH_End (); diff --git a/swad_country.c b/swad_country.c index 0086273d..ab9eca0e 100644 --- a/swad_country.c +++ b/swad_country.c @@ -666,13 +666,13 @@ static void Cty_PutHeadCountriesForSeeing (bool OrderSelectable) Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order); Frm_LinkFormSubmit (Txt_COUNTRIES_HELP_ORDER[Order],"TIT_TBL",NULL); if (Order == Gbl.Hierarchy.Sys.Ctys.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); } HTM_Txt (Txt_COUNTRIES_ORDER[Order]); if (OrderSelectable) { if (Order == Gbl.Hierarchy.Sys.Ctys.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); Frm_EndForm (); } diff --git a/swad_degree_type.c b/swad_degree_type.c index dd15f199..b0880521 100644 --- a/swad_degree_type.c +++ b/swad_degree_type.c @@ -518,10 +518,10 @@ static void DT_PutHeadDegreeTypesForSeeing (Act_Action_t NextAction,DT_Order_t S /* Link with the head of this column */ Frm_LinkFormSubmit (Txt_DEGREE_TYPES_HELP_ORDER[Order],"TIT_TBL",NULL); if (Order == SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); HTM_Txt (Txt_DEGREE_TYPES_ORDER[Order]); if (Order == SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); /* End form */ diff --git a/swad_department.c b/swad_department.c index 4a479dfd..532ec141 100644 --- a/swad_department.c +++ b/swad_department.c @@ -131,10 +131,10 @@ void Dpt_SeeDepts (void) Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order); Frm_LinkFormSubmit (Txt_DEPARTMENTS_HELP_ORDER[Order],"TIT_TBL",NULL); if (Order == Gbl.Dpts.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); HTM_Txt (Txt_DEPARTMENTS_ORDER[Order]); if (Order == Gbl.Dpts.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); Frm_EndForm (); diff --git a/swad_forum.c b/swad_forum.c index f24fade3..3adcec31 100644 --- a/swad_forum.c +++ b/swad_forum.c @@ -2553,10 +2553,10 @@ static void For_ShowForumThreadsHighlightingOneThread (long ThrCodHighlighted, -1L); Frm_LinkFormSubmit (Txt_FORUM_THREAD_HELP_ORDER[Order],"TIT_TBL",NULL); if (Order == Gbl.Forum.ThreadsOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); HTM_Txt (Txt_FORUM_THREAD_ORDER[Order]); if (Order == Gbl.Forum.ThreadsOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); Frm_EndForm (); diff --git a/swad_game.c b/swad_game.c index f918f781..c421df47 100644 --- a/swad_game.c +++ b/swad_game.c @@ -226,10 +226,10 @@ static void Gam_ListAllGames (void) Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order); Frm_LinkFormSubmit (Txt_GAMES_ORDER_HELP[Order],"TIT_TBL",NULL); if (Order == Gbl.Games.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); HTM_Txt (Txt_GAMES_ORDER[Order]); if (Order == Gbl.Games.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); Frm_EndForm (); diff --git a/swad_group.c b/swad_group.c index ae20e301..f99e63f5 100644 --- a/swad_group.c +++ b/swad_group.c @@ -201,7 +201,7 @@ void Grp_WriteNamesOfSelectedGrps (void) fprintf (Gbl.F.Out," %s ",Txt_and); if (Gbl.Crs.Grps.LstGrpsSel.NumGrps >= 3) if (NumGrpSel < Gbl.Crs.Grps.LstGrpsSel.NumGrps-2) - fprintf (Gbl.F.Out,", "); + HTM_Txt (", "); } } } diff --git a/swad_holiday.c b/swad_holiday.c index 838fc848..32e5c595 100644 --- a/swad_holiday.c +++ b/swad_holiday.c @@ -127,10 +127,10 @@ void Hld_SeeHolidays (void) Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order); Frm_LinkFormSubmit (Txt_HOLIDAYS_HELP_ORDER[Order],"TIT_TBL",NULL); if (Order == Gbl.Hlds.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); HTM_Txt (Txt_HOLIDAYS_ORDER[Order]); if (Order == Gbl.Hlds.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); Frm_EndForm (); diff --git a/swad_institution.c b/swad_institution.c index 33dd4f06..8965a32a 100644 --- a/swad_institution.c +++ b/swad_institution.c @@ -861,13 +861,13 @@ static void Ins_PutHeadInstitutionsForSeeing (bool OrderSelectable) Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order); Frm_LinkFormSubmit (Txt_INSTITUTIONS_HELP_ORDER[Order],"TIT_TBL",NULL); if (Order == Gbl.Hierarchy.Cty.Inss.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); } HTM_Txt (Txt_INSTITUTIONS_ORDER[Order]); if (OrderSelectable) { if (Order == Gbl.Hierarchy.Cty.Inss.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); Frm_EndForm (); } diff --git a/swad_mail.c b/swad_mail.c index 19fd94fe..f2f73ea3 100644 --- a/swad_mail.c +++ b/swad_mail.c @@ -139,10 +139,10 @@ void Mai_SeeMailDomains (void) Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order); Frm_LinkFormSubmit (Txt_EMAIL_DOMAIN_HELP_ORDER[Order],"TIT_TBL",NULL); if (Order == Gbl.Mails.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); HTM_Txt (Txt_EMAIL_DOMAIN_ORDER[Order]); if (Order == Gbl.Mails.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); Frm_EndForm (); @@ -941,7 +941,7 @@ static void Mai_ListEmails (void) { if (NumAcceptedUsrsWithEmail > 0) { - fprintf (Gbl.F.Out,", "); + HTM_Txt (", "); LengthStrAddr ++; if (LengthStrAddr > Mai_MAX_BYTES_STR_ADDR) Lay_ShowErrorAndExit ("The space allocated to store email addresses is full."); diff --git a/swad_match.c b/swad_match.c index 95aa4204..c8c61f55 100644 --- a/swad_match.c +++ b/swad_match.c @@ -634,7 +634,7 @@ static void Mch_GetAndWriteNamesOfGrpsAssociatedToMatch (const struct Match *Mat fprintf (Gbl.F.Out," %s ",Txt_and); if (NumRows >= 3) if (NumRow < NumRows-2) - fprintf (Gbl.F.Out,", "); + HTM_Txt (", "); } } } diff --git a/swad_place.c b/swad_place.c index 062d2141..8c5a351a 100644 --- a/swad_place.c +++ b/swad_place.c @@ -125,10 +125,10 @@ void Plc_SeePlaces (void) Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order); Frm_LinkFormSubmit (Txt_PLACES_HELP_ORDER[Order],"TIT_TBL",NULL); if (Order == Gbl.Plcs.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); HTM_Txt (Txt_PLACES_ORDER[Order]); if (Order == Gbl.Plcs.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); Frm_EndForm (); diff --git a/swad_project.c b/swad_project.c index f071410d..82a022b9 100644 --- a/swad_project.c +++ b/swad_project.c @@ -814,10 +814,10 @@ static void Prj_ShowProjectsHead (Prj_ProjectView_t ProjectView) -1L); Frm_LinkFormSubmit (Txt_PROJECT_ORDER_HELP[Order],"TIT_TBL",NULL); if (Order == Gbl.Prjs.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); HTM_Txt (Txt_PROJECT_ORDER[Order]); if (Order == Gbl.Prjs.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); Frm_EndForm (); break; diff --git a/swad_statistic.c b/swad_statistic.c index ebc80642..6d876a6d 100644 --- a/swad_statistic.c +++ b/swad_statistic.c @@ -3197,7 +3197,7 @@ static void Sta_ShowNumHitsPerPlugin (unsigned long NumRows, if (Plg_GetDataOfPluginByCod (&Plg)) HTM_Txt (Plg.Name); else - fprintf (Gbl.F.Out,"?"); + HTM_Txt ("?"); HTM_NBSP (); HTM_TD_End (); diff --git a/swad_survey.c b/swad_survey.c index fda1fa7c..e4abca9f 100644 --- a/swad_survey.c +++ b/swad_survey.c @@ -262,10 +262,10 @@ static void Svy_ListAllSurveys (struct SurveyQuestion *SvyQst) Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order); Frm_LinkFormSubmit (Txt_START_END_TIME_HELP[Order],"TIT_TBL",NULL); if (Order == Gbl.Svys.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); HTM_Txt (Txt_START_END_TIME[Order]); if (Order == Gbl.Svys.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); Frm_EndForm (); @@ -2488,7 +2488,7 @@ static void Svy_GetAndWriteNamesOfGrpsAssociatedToSvy (struct Survey *Svy) fprintf (Gbl.F.Out," %s ",Txt_and); if (NumRows >= 3) if (NumRow < NumRows-2) - fprintf (Gbl.F.Out,", "); + HTM_Txt (", "); } } } diff --git a/swad_test.c b/swad_test.c index f2ff8f2b..2f7e3df2 100644 --- a/swad_test.c +++ b/swad_test.c @@ -2832,13 +2832,13 @@ static void Tst_ListOneOrMoreQuestionsForEdition (unsigned long NumRows, Par_PutHiddenParamUnsigned (NULL,"Order",(unsigned) Order); Frm_LinkFormSubmit (Txt_TST_STR_ORDER_FULL[Order],"TIT_TBL",NULL); if (Order == Gbl.Test.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_Begin (); } HTM_Txt (Txt_TST_STR_ORDER_SHORT[Order]); if (NumRows > 1) { if (Order == Gbl.Test.SelectedOrder) - fprintf (Gbl.F.Out,""); + HTM_U_End (); Frm_LinkFormEnd (); Frm_EndForm (); } @@ -3615,7 +3615,7 @@ static void Tst_WriteTFAnsAssessTest (struct UsrData *UsrDat, Gbl.Test.Config.Feedback == Tst_FEEDBACK_FULL_FEEDBACK) Tst_WriteAnsTF (row[1][0]); else - fprintf (Gbl.F.Out,"?"); + HTM_Txt ("?"); HTM_TD_End (); HTM_TR_End (); @@ -3856,7 +3856,7 @@ static void Tst_WriteChoiceAnsAssessTest (struct UsrData *UsrDat, else { HTM_TD_Begin ("class=\"ANS_0 CT\""); - fprintf (Gbl.F.Out,"?"); + HTM_Txt ("?"); HTM_TD_End (); } @@ -4504,7 +4504,7 @@ static void Tst_WriteIntAnsAssessTest (struct UsrData *UsrDat, { Gbl.Test.StrAnswersOneQst[NumQst][0] = '\0'; HTM_TD_Begin ("class=\"ANS_0 CM\""); - fprintf (Gbl.F.Out,"?"); + HTM_Txt ("?"); HTM_TD_End (); } } @@ -4646,7 +4646,7 @@ static void Tst_WriteFloatAnsAssessTest (struct UsrData *UsrDat, else // Not a floating point number { HTM_TD_Begin ("class=\"ANS_0 CM\""); - fprintf (Gbl.F.Out,"?"); + HTM_Txt ("?"); } } else // If user has omitted the answer @@ -4659,7 +4659,7 @@ static void Tst_WriteFloatAnsAssessTest (struct UsrData *UsrDat, Gbl.Test.Config.Feedback == Tst_FEEDBACK_FULL_FEEDBACK) fprintf (Gbl.F.Out,"[%lg; %lg]",FloatAnsCorr[0],FloatAnsCorr[1]); else - fprintf (Gbl.F.Out,"?"); + HTM_Txt ("?"); HTM_TD_End (); HTM_TR_End ();