From 26ccde3e216e7344fb40e14eab72a7f192066c0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Mon, 28 Oct 2019 20:38:29 +0100 Subject: [PATCH] Version19.46.1 --- swad_RSS.c | 11 +++++++---- swad_RSS.h | 2 +- swad_banner.c | 6 +++--- swad_box.c | 8 +++----- swad_centre.c | 28 ++++++++++++++-------------- swad_changelog.h | 3 ++- swad_country.c | 26 +++++++++++++------------- swad_course.c | 19 +++++++++---------- swad_degree.c | 24 ++++++++++++------------ swad_department.c | 4 ++-- swad_exam.c | 8 ++++---- swad_file_browser.c | 9 ++++----- swad_indicator.c | 8 ++++---- swad_info.c | 4 ++-- swad_institution.c | 28 +++++++++++++--------------- swad_layout.c | 33 ++++++++++++++------------------- swad_link.c | 7 +++---- swad_mail.c | 20 ++++++++++---------- swad_match.c | 11 +++++------ swad_media.c | 9 ++++----- swad_network.c | 3 +-- swad_notice.c | 6 +++--- swad_plugin.c | 8 ++++---- swad_project.c | 14 +++++++------- swad_record.c | 34 ++++++++++++++-------------------- swad_report.c | 7 +++---- swad_statistic.c | 6 +++--- swad_test.c | 29 ++++++++++++++++------------- swad_test_import.c | 11 +++++------ swad_timeline.c | 33 ++++++++++++++++----------------- swad_user.c | 7 +++---- swad_zip.c | 8 ++++---- 32 files changed, 208 insertions(+), 226 deletions(-) diff --git a/swad_RSS.c b/swad_RSS.c index d7a52f238..649207b9e 100644 --- a/swad_RSS.c +++ b/swad_RSS.c @@ -62,6 +62,7 @@ void RSS_UpdateRSSFileForACrs (struct Course *Crs) char PathRelPublRSSDir[PATH_MAX + 1]; char PathRelPublRSSFile[PATH_MAX + 1]; FILE *FileRSS; + char RSSLink[Cns_MAX_BYTES_WWW + 1]; struct tm *tm; /***** Create RSS directory if not exists *****/ @@ -85,7 +86,8 @@ void RSS_UpdateRSSFileForACrs (struct Course *Crs) fprintf (FileRSS,"\n"); fprintf (FileRSS,"CrsCod); + RSS_BuildRSSLink (RSSLink,Crs->CrsCod); + fprintf (FileRSS,"%s",RSSLink); fprintf (FileRSS,"\" rel=\"self\" type=\"application/rss+xml\" />\n"); fprintf (FileRSS,"%s: %s\n", @@ -322,8 +324,9 @@ static void RSS_WriteExamAnnouncements (FILE *FileRSS,struct Course *Crs) /********* Write URL to RSS archive with active notices in a course **********/ /*****************************************************************************/ -void RSS_WriteRSSLink (FILE *FileTgt,long CrsCod) +void RSS_BuildRSSLink (char RSSLink[Cns_MAX_BYTES_WWW + 1],long CrsCod) { - fprintf (FileTgt,"%s/%ld/%s/%s", - Cfg_URL_CRS_PUBLIC,CrsCod,Cfg_RSS_FOLDER,Cfg_RSS_FILE); + snprintf (RSSLink,Cns_MAX_BYTES_WWW + 1, + "%s/%ld/%s/%s", + Cfg_URL_CRS_PUBLIC,CrsCod,Cfg_RSS_FOLDER,Cfg_RSS_FILE); } diff --git a/swad_RSS.h b/swad_RSS.h index 7e67ffbf1..a3505df0c 100644 --- a/swad_RSS.h +++ b/swad_RSS.h @@ -40,6 +40,6 @@ /*****************************************************************************/ void RSS_UpdateRSSFileForACrs (struct Course *Crs); -void RSS_WriteRSSLink (FILE *FileTgt,long CrsCod); +void RSS_BuildRSSLink (char RSSLink[Cns_MAX_BYTES_WWW + 1],long CrsCod); #endif diff --git a/swad_banner.c b/swad_banner.c index 71bdbb656..8b1cd3ec1 100644 --- a/swad_banner.c +++ b/swad_banner.c @@ -153,9 +153,9 @@ static void Ban_WriteListOfBanners (void) { /* Write data of this banner */ HTM_LI_Begin (NULL); - fprintf (Gbl.F.Out,"", - Gbl.Banners.Lst[NumBan].WWW, - Gbl.Banners.Lst[NumBan].FullName); + HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\"", + Gbl.Banners.Lst[NumBan].WWW, + Gbl.Banners.Lst[NumBan].FullName); fprintf (Gbl.F.Out,"\"%s\"", diff --git a/swad_box.c b/swad_box.c index 46ecf59eb..338ad2ed7 100644 --- a/swad_box.c +++ b/swad_box.c @@ -171,8 +171,7 @@ static void Box_StartBoxInternal (const char *Width,const char *Title, if (HelpLink) // Link to help { - fprintf (Gbl.F.Out,"", - Hlp_WIKI,HelpLink); + HTM_A_Begin ("href=\"%s%s\" target=\"_blank\"",Hlp_WIKI,HelpLink); Ico_PutDivIcon ("CONTEXT_OPT HLP_HIGHLIGHT", "question.svg",Txt_Help); HTM_A_End (); @@ -180,9 +179,8 @@ static void Box_StartBoxInternal (const char *Width,const char *Title, if (Closable == Box_CLOSABLE) // Icon to close the box { - fprintf (Gbl.F.Out,"", - Gbl.Box.Ids[Gbl.Box.Nested]); + HTM_A_Begin ("href=\"\" onclick=\"toggleDisplay('%s');return false;\"", + Gbl.Box.Ids[Gbl.Box.Nested]); Ico_PutDivIcon ("CONTEXT_OPT HLP_HIGHLIGHT", "close.svg",Txt_Close); HTM_A_End (); diff --git a/swad_centre.c b/swad_centre.c index 7dd69e69f..15022da19 100644 --- a/swad_centre.c +++ b/swad_centre.c @@ -335,10 +335,10 @@ static void Ctr_Configuration (bool PrintView) PutLink = !PrintView && Gbl.Hierarchy.Ctr.WWW[0]; HTM_DIV_Begin ("class=\"FRAME_TITLE FRAME_TITLE_BIG\""); if (PutLink) - fprintf (Gbl.F.Out,"", - Gbl.Hierarchy.Ctr.WWW, - Gbl.Hierarchy.Ctr.FullName); + HTM_A_Begin ("href=\"%s\" target=\"_blank\"" + " class=\"FRAME_TITLE_BIG\" title=\"%s\"", + Gbl.Hierarchy.Ctr.WWW, + Gbl.Hierarchy.Ctr.FullName); Log_DrawLogo (Hie_CTR,Gbl.Hierarchy.Ctr.CtrCod, Gbl.Hierarchy.Ctr.ShrtName,64,NULL,true); fprintf (Gbl.F.Out,"
%s",Gbl.Hierarchy.Ctr.FullName); @@ -355,8 +355,8 @@ static void Ctr_Configuration (bool PrintView) /* Photo image */ HTM_DIV_Begin ("class=\"DAT_SMALL CM\""); if (PutLink) - fprintf (Gbl.F.Out,"
", - Gbl.Hierarchy.Ctr.WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT_N\"", + Gbl.Hierarchy.Ctr.WWW); fprintf (Gbl.F.Out,"\"%s\"", @@ -588,8 +588,8 @@ static void Ctr_Configuration (bool PrintView) else // I can not change centre WWW { HTM_DIV_Begin ("class=\"EXTERNAL_WWW_LONG\""); - fprintf (Gbl.F.Out,"", - Gbl.Hierarchy.Ctr.WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT\"", + Gbl.Hierarchy.Ctr.WWW); fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Ctr.WWW); HTM_A_End (); HTM_DIV_End (); @@ -606,10 +606,10 @@ static void Ctr_Configuration (bool PrintView) HTM_TD_End (); HTM_TD_Begin ("class=\"DAT LM\""); - fprintf (Gbl.F.Out,"", - Cfg_URL_SWAD_CGI, - Lan_STR_LANG_ID[Gbl.Prefs.Language], - Gbl.Hierarchy.Ctr.CtrCod); + HTM_A_Begin ("href=\"%s/%s?ctr=%ld\" class=\"DAT\" target=\"_blank\"", + Cfg_URL_SWAD_CGI, + Lan_STR_LANG_ID[Gbl.Prefs.Language], + Gbl.Hierarchy.Ctr.CtrCod); fprintf (Gbl.F.Out,"%s/%s?ctr=%ld", Cfg_URL_SWAD_CGI, Lan_STR_LANG_ID[Gbl.Prefs.Language], @@ -1606,8 +1606,8 @@ static void Ctr_ListCentresForEdition (void) Str_Copy (WWW,Ctr->WWW, Cns_MAX_BYTES_WWW); HTM_DIV_Begin ("class=\"EXTERNAL_WWW_SHORT\""); - fprintf (Gbl.F.Out,"",Ctr->WWW,Ctr->WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\"" + " class=\"DAT\" title=\"%s\"",Ctr->WWW,Ctr->WWW); fprintf (Gbl.F.Out,"%s",WWW); HTM_A_End (); HTM_DIV_End (); diff --git a/swad_changelog.h b/swad_changelog.h index 92951fcef..e3118c5e4 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -487,13 +487,14 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - * En OpenSWAD: ps2pdf source.ps destination.pdf */ -#define Log_PLATFORM_VERSION "SWAD 19.46 (2019-10-28)" +#define Log_PLATFORM_VERSION "SWAD 19.46.1 (2019-10-28)" #define CSS_FILE "swad19.45.css" #define JS_FILE "swad19.39.js" /* // TODO: Hacer un nuevo rol en los TFG: tutor externo (profesor de áreas no vinculadas con el centro, profesionales de empresas, etc.) // TODO: Impedir la creación y edición de proyectos si no son editables. + Version 19.46.1: Oct 28, 2019 Code refactoring in HTML anchors. (246523 lines) Version 19.46: Oct 28, 2019 Code refactoring in HTML anchors. (246541 lines) Version 19.45.2: Oct 27, 2019 Code refactoring in HTML forms. (246498 lines) Version 19.45.1: Oct 27, 2019 Code refactoring in HTML forms. (246481 lines) diff --git a/swad_country.c b/swad_country.c index 38adf94bc..1aa7b114c 100644 --- a/swad_country.c +++ b/swad_country.c @@ -265,10 +265,10 @@ static void Cty_Configuration (bool PrintView) PutLink = !PrintView && Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language][0]; HTM_DIV_Begin ("class=\"FRAME_TITLE FRAME_TITLE_BIG\""); if (PutLink) - fprintf (Gbl.F.Out,"", - Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language], - Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]); + HTM_A_Begin ("href=\"%s\" target=\"_blank\"" + " class=\"FRAME_TITLE_BIG\" title=\"%s\"", + Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language], + Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]); fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]); if (PutLink) HTM_A_End (); @@ -283,10 +283,10 @@ static void Cty_Configuration (bool PrintView) /* Map image */ HTM_DIV_Begin ("class=\"DAT_SMALL CM\""); if (PutLink) - fprintf (Gbl.F.Out,"", - Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language]); + HTM_A_Begin ("href=\"%s\" target=\"_blank\"", + Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language]); Cty_DrawCountryMap (&Gbl.Hierarchy.Cty,PrintView ? "COUNTRY_MAP_PRINT" : - "COUNTRY_MAP_SHOW"); + "COUNTRY_MAP_SHOW"); if (PutLink) HTM_A_End (); HTM_DIV_End (); @@ -329,8 +329,8 @@ static void Cty_Configuration (bool PrintView) HTM_TD_Begin ("class=\"DAT_N LM\""); if (!PrintView && Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language][0]) - fprintf (Gbl.F.Out,"", - Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language]); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT_N\"", + Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language]); fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]); if (!PrintView && Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language][0]) HTM_A_End (); @@ -346,10 +346,10 @@ static void Cty_Configuration (bool PrintView) HTM_TD_End (); HTM_TD_Begin ("class=\"DAT LM\""); - fprintf (Gbl.F.Out,"", - Cfg_URL_SWAD_CGI, - Lan_STR_LANG_ID[Gbl.Prefs.Language], - Gbl.Hierarchy.Cty.CtyCod); + HTM_A_Begin ("href=\"%s/%s?cty=%ld\" class=\"DAT\" target=\"_blank\"", + Cfg_URL_SWAD_CGI, + Lan_STR_LANG_ID[Gbl.Prefs.Language], + Gbl.Hierarchy.Cty.CtyCod); fprintf (Gbl.F.Out,"%s/%s?cty=%ld", Cfg_URL_SWAD_CGI, Lan_STR_LANG_ID[Gbl.Prefs.Language], diff --git a/swad_course.c b/swad_course.c index 9c37a1aa8..c0b4c3b42 100644 --- a/swad_course.c +++ b/swad_course.c @@ -219,16 +219,15 @@ static void Crs_Configuration (bool PrintView) PutLink = !PrintView && Gbl.Hierarchy.Deg.WWW[0]; HTM_DIV_Begin ("class=\"FRAME_TITLE FRAME_TITLE_BIG\""); if (PutLink) - fprintf (Gbl.F.Out,"", - Gbl.Hierarchy.Deg.WWW, - Gbl.Hierarchy.Deg.FullName); + HTM_A_Begin ("href=\"%s\" target=\"_blank\"" + " class=\"FRAME_TITLE_BIG\" title=\"%s\"", + Gbl.Hierarchy.Deg.WWW, + Gbl.Hierarchy.Deg.FullName); Log_DrawLogo (Hie_DEG,Gbl.Hierarchy.Deg.DegCod, Gbl.Hierarchy.Deg.ShrtName,64,NULL,true); if (PutLink) HTM_A_End (); - fprintf (Gbl.F.Out,"
%s", - Gbl.Hierarchy.Crs.FullName); + fprintf (Gbl.F.Out,"
%s",Gbl.Hierarchy.Crs.FullName); HTM_DIV_End (); /***** Begin table *****/ @@ -432,10 +431,10 @@ static void Crs_Configuration (bool PrintView) HTM_TD_End (); HTM_TD_Begin ("class=\"DAT LM\""); - fprintf (Gbl.F.Out,"
", - Cfg_URL_SWAD_CGI, - Lan_STR_LANG_ID[Gbl.Prefs.Language], - Gbl.Hierarchy.Crs.CrsCod); + HTM_A_Begin ("href=\"%s/%s?crs=%ld\" class=\"DAT\" target=\"_blank\"", + Cfg_URL_SWAD_CGI, + Lan_STR_LANG_ID[Gbl.Prefs.Language], + Gbl.Hierarchy.Crs.CrsCod); fprintf (Gbl.F.Out,"%s/%s?crs=%ld", Cfg_URL_SWAD_CGI, Lan_STR_LANG_ID[Gbl.Prefs.Language], diff --git a/swad_degree.c b/swad_degree.c index 050207e98..4c8f061b3 100644 --- a/swad_degree.c +++ b/swad_degree.c @@ -323,10 +323,10 @@ static void Deg_Configuration (bool PrintView) PutLink = !PrintView && Gbl.Hierarchy.Deg.WWW[0]; HTM_DIV_Begin ("class=\"FRAME_TITLE FRAME_TITLE_BIG\""); if (PutLink) - fprintf (Gbl.F.Out,"", - Gbl.Hierarchy.Deg.WWW, - Gbl.Hierarchy.Deg.FullName); + HTM_A_Begin ("href=\"%s\" target=\"_blank\"" + " class=\"FRAME_TITLE_BIG\" title=\"%s\">", + Gbl.Hierarchy.Deg.WWW, + Gbl.Hierarchy.Deg.FullName); Log_DrawLogo (Hie_DEG,Gbl.Hierarchy.Deg.DegCod, Gbl.Hierarchy.Deg.ShrtName,64,NULL,true); fprintf (Gbl.F.Out,"
%s", @@ -473,8 +473,8 @@ static void Deg_Configuration (bool PrintView) else // I can not change degree WWW { HTM_DIV_Begin ("class=\"EXTERNAL_WWW_LONG\""); - fprintf (Gbl.F.Out,"
", - Gbl.Hierarchy.Deg.WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT\"", + Gbl.Hierarchy.Deg.WWW); fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Deg.WWW); HTM_A_End (); HTM_DIV_End (); @@ -490,10 +490,10 @@ static void Deg_Configuration (bool PrintView) HTM_TD_End (); HTM_TD_Begin ("class=\"DAT LM\""); - fprintf (Gbl.F.Out,"", - Cfg_URL_SWAD_CGI, - Lan_STR_LANG_ID[Gbl.Prefs.Language], - Gbl.Hierarchy.Deg.DegCod); + HTM_A_Begin ("href=\"%s/%s?deg=%ld\" class=\"DAT\" target=\"_blank\"", + Cfg_URL_SWAD_CGI, + Lan_STR_LANG_ID[Gbl.Prefs.Language], + Gbl.Hierarchy.Deg.DegCod); fprintf (Gbl.F.Out,"%s/%s?deg=%ld", Cfg_URL_SWAD_CGI, Lan_STR_LANG_ID[Gbl.Prefs.Language], @@ -835,8 +835,8 @@ static void Deg_ListDegreesForEdition (void) Str_Copy (WWW,Deg->WWW, Cns_MAX_BYTES_WWW); HTM_DIV_Begin ("class=\"EXTERNAL_WWW_SHORT\""); - fprintf (Gbl.F.Out,"",Deg->WWW,Deg->WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT\" title=\"%s\"", + Deg->WWW,Deg->WWW); fprintf (Gbl.F.Out,"%s",WWW); HTM_A_End (); HTM_DIV_End (); diff --git a/swad_department.c b/swad_department.c index 61ca89ade..0bff7f752 100644 --- a/swad_department.c +++ b/swad_department.c @@ -151,8 +151,8 @@ void Dpt_SeeDepts (void) HTM_TR_Begin (NULL); HTM_TD_Begin ("class=\"LM\""); - fprintf (Gbl.F.Out,"", - Gbl.Dpts.Lst[NumDpt].WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT\"", + Gbl.Dpts.Lst[NumDpt].WWW); fprintf (Gbl.F.Out,"%s",Gbl.Dpts.Lst[NumDpt].FullName); HTM_A_End (); HTM_TD_End (); diff --git a/swad_exam.c b/swad_exam.c index 958c67210..6ce730faa 100644 --- a/swad_exam.c +++ b/swad_exam.c @@ -1049,8 +1049,8 @@ static void Exa_ShowExamAnnouncement (long ExaCod, if (TypeViewExamAnnouncement == Exa_PRINT_VIEW) fprintf (Gbl.F.Out,"",StyleTitle); else - fprintf (Gbl.F.Out,"", - Ins.WWW,StyleTitle); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"", + Ins.WWW,StyleTitle); Log_DrawLogo (Hie_INS,Ins.InsCod,Ins.FullName,64,NULL,true); fprintf (Gbl.F.Out,"
%s", Ins.FullName); @@ -1065,8 +1065,8 @@ static void Exa_ShowExamAnnouncement (long ExaCod, HTM_TR_Begin (NULL); HTM_TD_Begin ("colspan=\"2\" class=\"%s CM\"",StyleTitle); if (TypeViewExamAnnouncement == Exa_NORMAL_VIEW) - fprintf (Gbl.F.Out,"
", - Gbl.Hierarchy.Deg.WWW,StyleTitle); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"", + Gbl.Hierarchy.Deg.WWW,StyleTitle); fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Deg.FullName); if (TypeViewExamAnnouncement == Exa_NORMAL_VIEW) HTM_A_End (); diff --git a/swad_file_browser.c b/swad_file_browser.c index e9bdb015d..f66f15df5 100644 --- a/swad_file_browser.c +++ b/swad_file_browser.c @@ -10065,9 +10065,8 @@ static void Brw_WriteBigLinkToDownloadFile (const char *URL, Txt_Download; /* Put anchor and filename */ - fprintf (Gbl.F.Out,"", - URL,Title); + HTM_A_Begin ("href=\"%s\" class=\"FILENAME_TXT\" title=\"%s\" target=\"_blank\"", + URL,Title); Brw_PutIconFile (32,FileMetadata->FilFolLnk.Type,FileMetadata->FilFolLnk.Name); fprintf (Gbl.F.Out," %s " "", - URL,FileNameToShow); + HTM_A_Begin ("href=\"%s\" class=\"DAT\" title=\"%s\" target=\"_blank\"", + URL,FileNameToShow); fprintf (Gbl.F.Out,"%s",FileNameToShow); HTM_A_End (); } diff --git a/swad_indicator.c b/swad_indicator.c index 6015bf347..de8bcc967 100644 --- a/swad_indicator.c +++ b/swad_indicator.c @@ -928,8 +928,8 @@ static void Ind_ShowTableOfCoursesWithIndicators (Ind_IndicatorsLayout_t Indicat HTM_TD_End (); HTM_TD_Begin ("class=\"DAT_SMALL LM COLOR%u\"",Gbl.RowEvenOdd); - fprintf (Gbl.F.Out,"", - Cfg_URL_SWAD_CGI,CrsCod,ActCod); + HTM_A_Begin ("href=\"%s/?crs=%ld&act=%ld\" target=\"_blank\"", + Cfg_URL_SWAD_CGI,CrsCod,ActCod); fprintf (Gbl.F.Out,"%s/?crs=%ld&act=%ld", Cfg_URL_SWAD_CGI,CrsCod,ActCod); HTM_A_End (); @@ -1038,8 +1038,8 @@ static void Ind_ShowTableOfCoursesWithIndicators (Ind_IndicatorsLayout_t Indicat HTM_TD_End (); HTM_TD_Begin ("class=\"DAT_SMALL LM COLOR%u\"",Gbl.RowEvenOdd); - fprintf (Gbl.F.Out,"", - Cfg_URL_SWAD_CGI,CrsCod,ActCod); + HTM_A_Begin ("href=\"%s/?crs=%ld&act=%ld\" target=\"_blank\"", + Cfg_URL_SWAD_CGI,CrsCod,ActCod); fprintf (Gbl.F.Out,"%s/?crs=%ld&act=%ld", Cfg_URL_SWAD_CGI,CrsCod,ActCod); HTM_A_End (); diff --git a/swad_info.c b/swad_info.c index a2cd19692..d62940cfd 100644 --- a/swad_info.c +++ b/swad_info.c @@ -1048,8 +1048,8 @@ static void Inf_ShowPage (const char *URL) Help[Gbl.Crs.Info.Type],Box_NOT_CLOSABLE); /***** Link to view in a new window *****/ - fprintf (Gbl.F.Out,"", - URL,The_ClassFormOutBoxBold[Gbl.Prefs.Theme]); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"", + URL,The_ClassFormOutBoxBold[Gbl.Prefs.Theme]); Ico_PutIconTextLink ("expand-arrows-alt.svg", Txt_View_in_a_new_window); HTM_A_End (); diff --git a/swad_institution.c b/swad_institution.c index 8d988a7f3..3f1390b54 100644 --- a/swad_institution.c +++ b/swad_institution.c @@ -337,10 +337,9 @@ static void Ins_Configuration (bool PrintView) PutLink = !PrintView && Gbl.Hierarchy.Ins.WWW[0]; HTM_DIV_Begin ("class=\"FRAME_TITLE FRAME_TITLE_BIG\""); if (PutLink) - fprintf (Gbl.F.Out,"", - Gbl.Hierarchy.Ins.WWW, - Gbl.Hierarchy.Ins.FullName); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"FRAME_TITLE_BIG\" title=\"%s\"", + Gbl.Hierarchy.Ins.WWW, + Gbl.Hierarchy.Ins.FullName); Log_DrawLogo (Hie_INS,Gbl.Hierarchy.Ins.InsCod, Gbl.Hierarchy.Ins.ShrtName,64,NULL,true); fprintf (Gbl.F.Out,"
%s",Gbl.Hierarchy.Ins.FullName); @@ -487,10 +486,9 @@ static void Ins_Configuration (bool PrintView) else // I can not change institution WWW { HTM_DIV_Begin ("class=\"EXTERNAL_WWW_LONG\""); - fprintf (Gbl.F.Out,"
" - "%s", - Gbl.Hierarchy.Ins.WWW, - Gbl.Hierarchy.Ins.WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT\">", + Gbl.Hierarchy.Ins.WWW); + fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Ins.WWW); HTM_A_End (); HTM_DIV_End (); } @@ -506,11 +504,11 @@ static void Ins_Configuration (bool PrintView) HTM_TD_End (); HTM_TD_Begin ("class=\"LM\""); - fprintf (Gbl.F.Out,"" - "%s/%s?ins=%ld", - Cfg_URL_SWAD_CGI, - Lan_STR_LANG_ID[Gbl.Prefs.Language], - Gbl.Hierarchy.Ins.InsCod, + HTM_A_Begin ("href=\"%s/%s?ins=%ld\" class=\"DAT\" target=\"_blank\"", + Cfg_URL_SWAD_CGI, + Lan_STR_LANG_ID[Gbl.Prefs.Language], + Gbl.Hierarchy.Ins.InsCod); + fprintf (Gbl.F.Out,"%s/%s?ins=%ld", Cfg_URL_SWAD_CGI, Lan_STR_LANG_ID[Gbl.Prefs.Language], Gbl.Hierarchy.Ins.InsCod); @@ -1557,8 +1555,8 @@ static void Ins_ListInstitutionsForEdition (void) Str_Copy (WWW,Ins->WWW, Cns_MAX_BYTES_WWW); HTM_DIV_Begin ("class=\"EXTERNAL_WWW_SHORT\""); - fprintf (Gbl.F.Out,"",Ins->WWW,Ins->WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT\" title=\"%s\"", + Ins->WWW,Ins->WWW); fprintf (Gbl.F.Out,"%s",WWW); HTM_A_End (); HTM_DIV_End (); diff --git a/swad_layout.c b/swad_layout.c index dd5d36544..16ee74cbe 100644 --- a/swad_layout.c +++ b/swad_layout.c @@ -1152,9 +1152,9 @@ static void Lay_ShowRightColumn (void) { /***** SWADroid advertisement *****/ HTM_DIV_Begin ("class=\"LEFT_RIGHT_CELL\""); - fprintf (Gbl.F.Out,"", - Txt_If_you_have_an_Android_device_try_SWADroid); + HTM_A_Begin ("href=\"https://play.google.com/store/apps/details?id=es.ugr.swad.swadroid\"" + " target=\"_blank\" title=\"%s\"", + Txt_If_you_have_an_Android_device_try_SWADroid); fprintf (Gbl.F.Out,"\"SWADroid\"", @@ -1430,8 +1430,7 @@ static void Lay_WriteAboutZone (void) fprintf (Gbl.F.Out,"
"); /***** Institution and centre hosting the platform *****/ - fprintf (Gbl.F.Out,"", - Cfg_ABOUT_URL); + HTM_A_Begin ("href=\"%s\" class=\"ABOUT\" target=\"_blank\"",Cfg_ABOUT_URL); fprintf (Gbl.F.Out,"\"%s\"", @@ -1457,8 +1456,7 @@ static void Lay_WriteAboutZone (void) HTM_DIV_Begin (NULL); /* About */ - fprintf (Gbl.F.Out,"", - Cfg_ABOUT_SWAD_URL); + HTM_A_Begin ("href=\"%s\" class=\"ABOUT\" target=\"_blank\"",Cfg_ABOUT_SWAD_URL); fprintf (Gbl.F.Out,Txt_About_X,Log_PLATFORM_VERSION); HTM_A_End (); fprintf (Gbl.F.Out,"     "); @@ -1604,7 +1602,7 @@ void Lay_WriteHeaderClassPhoto (bool PrintView,bool DrawingClassPhoto, if (InsCod > 0) { if (!PrintView) - fprintf (Gbl.F.Out,"",Ins.WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\"",Ins.WWW); Log_DrawLogo (Hie_INS,Ins.InsCod,Ins.ShrtName,40,NULL,true); if (!PrintView) HTM_A_End (); @@ -1616,9 +1614,8 @@ void Lay_WriteHeaderClassPhoto (bool PrintView,bool DrawingClassPhoto, if (InsCod > 0) { if (!PrintView) - fprintf (Gbl.F.Out,"", - Ins.WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"CLASSPHOTO_TITLE\"", + Ins.WWW); fprintf (Gbl.F.Out,"%s",Ins.FullName); if (!PrintView) HTM_A_End (); @@ -1628,9 +1625,8 @@ void Lay_WriteHeaderClassPhoto (bool PrintView,bool DrawingClassPhoto, if (Ins.InsCod > 0) fprintf (Gbl.F.Out," - "); if (!PrintView) - fprintf (Gbl.F.Out,"", - Deg.WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"CLASSPHOTO_TITLE\"", + Deg.WWW); fprintf (Gbl.F.Out,"%s",Deg.FullName); if (!PrintView) HTM_A_End (); @@ -1652,9 +1648,8 @@ void Lay_WriteHeaderClassPhoto (bool PrintView,bool DrawingClassPhoto, if (DegCod > 0) { if (!PrintView) - fprintf (Gbl.F.Out,"", - Deg.WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"CLASSPHOTO_TITLE\"", + Deg.WWW); Log_DrawLogo (Hie_DEG,Deg.DegCod,Deg.ShrtName,40,NULL,true); if (!PrintView) HTM_A_End (); @@ -1687,8 +1682,8 @@ void Lay_AdvertisementMobile (void) /***** Show advertisement *****/ HTM_TR_Begin (NULL); HTM_TD_Begin ("class=\"DAT CM\""); - fprintf (Gbl.F.Out,""); + HTM_A_Begin ("href=\"https://play.google.com/store/apps/details?id=es.ugr.swad.swadroid\"" + " class=\"DAT\""); fprintf (Gbl.F.Out,"%s

" "\"SWADroid\"", - Gbl.Links.Lst[NumLnk].WWW, - Gbl.Links.Lst[NumLnk].FullName); + HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"INS_LNK\" target=\"_blank\"", + Gbl.Links.Lst[NumLnk].WWW, + Gbl.Links.Lst[NumLnk].FullName); fprintf (Gbl.F.Out,"%s",Gbl.Links.Lst[NumLnk].ShrtName); HTM_A_End (); HTM_LI_End (); diff --git a/swad_mail.c b/swad_mail.c index 112d06b38..3d70713d7 100644 --- a/swad_mail.c +++ b/swad_mail.c @@ -963,8 +963,8 @@ static void Mai_ListEmails (void) Lay_ShowErrorAndExit ("The space allocated to store email addresses is full."); Str_Concat (StrAddresses,UsrDat.Email, Mai_MAX_BYTES_STR_ADDR); - fprintf (Gbl.F.Out,"
", - UsrDat.Email,Gbl.Hierarchy.Crs.FullName); + HTM_A_Begin ("href=\"mailto:%s?subject=%s\"", + UsrDat.Email,Gbl.Hierarchy.Crs.FullName); fprintf (Gbl.F.Out,"%s",UsrDat.Email); HTM_A_End (); @@ -994,14 +994,14 @@ static void Mai_ListEmails (void) Mnu_ContextMenuBegin (); /* Open the client email program */ - fprintf (Gbl.F.Out,"", - Gbl.Usrs.Me.UsrDat.Email, - Gbl.Hierarchy.Crs.FullName, - Gbl.Usrs.Me.UsrDat.Email, - StrAddresses, - Txt_Create_email_message, - The_ClassFormOutBoxBold[Gbl.Prefs.Theme]); + HTM_A_Begin ("href=\"mailto:%s?subject=%s&cc=%s&bcc=%s\"" + " title=\"%s\" class=\"%s\"", + Gbl.Usrs.Me.UsrDat.Email, + Gbl.Hierarchy.Crs.FullName, + Gbl.Usrs.Me.UsrDat.Email, + StrAddresses, + Txt_Create_email_message, + The_ClassFormOutBoxBold[Gbl.Prefs.Theme]); Ico_PutIconTextLink ("marker.svg", Txt_Create_email_message); HTM_A_End (); diff --git a/swad_match.c b/swad_match.c index a58381097..c9300877a 100644 --- a/swad_match.c +++ b/swad_match.c @@ -2867,9 +2867,9 @@ static void Mch_PutBigButton (Act_Action_t NextAction,const char *Id, /***** Put icon with link *****/ HTM_DIV_Begin ("class=\"MCH_BUTTON_CONTAINER\""); - fprintf (Gbl.F.Out,"",Txt,Id); + HTM_A_Begin ("href=\"\" class=\"MCH_BUTTON_ON\" title=\"%s\" " + " onclick=\"document.getElementById('%s').submit();return false;\"", + Txt,Id); fprintf (Gbl.F.Out,"",Icon); HTM_A_End (); HTM_DIV_End (); @@ -2894,9 +2894,8 @@ static void Mch_PutBigButtonClose (void) /***** Put icon with link *****/ HTM_DIV_Begin ("class=\"MCH_BUTTON_CONTAINER\""); - fprintf (Gbl.F.Out,"",Txt_Close); + HTM_A_Begin ("href=\"\" class=\"MCH_BUTTON_ON\" title=\"%s\" " + " onclick=\"window.close();return false;\"\"",Txt_Close); fprintf (Gbl.F.Out,"",Mch_ICON_CLOSE); HTM_A_End (); HTM_DIV_End (); diff --git a/swad_media.c b/swad_media.c index 97c0dae95..c5322193d 100644 --- a/swad_media.c +++ b/swad_media.c @@ -391,8 +391,7 @@ void Med_PutMediaUploader (int NumMediaInForm,const char *ClassInput) /***** Icon 'clip' *****/ HTM_DIV_Begin ("id=\"%s_med_ico\"",Id); // _med_ico - fprintf (Gbl.F.Out,"", + HTM_A_Begin ("href=\"\" onclick=\"mediaActivateMediaUploader('%s');return false;\"", Id); fprintf (Gbl.F.Out,"\"%s\"_IconSuffix UniqueId,MediaUploader->IconSuffix); - fprintf (Gbl.F.Out,"", - MediaUploader->FunctionName,UniqueId); + HTM_A_Begin ("href=\"\" onclick=\"%s('%s');return false;\"", + MediaUploader->FunctionName,UniqueId); fprintf (Gbl.F.Out,"\"%s\"", Cfg_URL_ICON_PUBLIC,MediaUploader->Icon, @@ -1477,7 +1476,7 @@ void Med_ShowMedia (struct Media *Media, if (Media->URL[0]) PutLink = true; if (PutLink) - fprintf (Gbl.F.Out,"",Media->URL); + HTM_A_Begin ("href=\"%s\" target=\"_blank\"",Media->URL); /* Create a temporary public directory used to show the media */ Brw_CreateDirDownloadTmp (); diff --git a/swad_network.c b/swad_network.c index c18b94e4a..3146ad211 100644 --- a/swad_network.c +++ b/swad_network.c @@ -252,8 +252,7 @@ static void Net_ShowAWebOrSocialNet (const char *URL, { /***** Write link and icon *****/ HTM_DIV_Begin ("class=\"ICO_HIGHLIGHT\" style=\"display:inline;\""); - fprintf (Gbl.F.Out,"", - URL,Title); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" title=\"%s\"",URL,Title); fprintf (Gbl.F.Out,"\"%s\"", diff --git a/swad_notice.c b/swad_notice.c index a9aae76fd..ac9cffa69 100644 --- a/swad_notice.c +++ b/swad_notice.c @@ -369,6 +369,7 @@ void Not_ShowNotices (Not_Listing_t TypeNoticesListing,long HighlightNotCod) long UsrCod; unsigned UnsignedNum; Not_Status_t Status; + char RSSLink[Cns_MAX_BYTES_WWW + 1]; /***** Trivial check *****/ if (Gbl.Hierarchy.Level != Hie_CRS) // No course selected @@ -470,9 +471,8 @@ void Not_ShowNotices (Not_Listing_t TypeNoticesListing,long HighlightNotCod) /* Put a link to the RSS file */ HTM_DIV_Begin ("class=\"CM\""); - fprintf (Gbl.F.Out,""); + RSS_BuildRSSLink (RSSLink,Gbl.Hierarchy.Crs.CrsCod); + HTM_A_Begin ("href=\"%s\" target=\"_blank\"",RSSLink); fprintf (Gbl.F.Out,"\"RSS\"", diff --git a/swad_plugin.c b/swad_plugin.c index bf03fb2f4..99f604bd8 100644 --- a/swad_plugin.c +++ b/swad_plugin.c @@ -137,8 +137,8 @@ void Plg_ListPlugins (void) HTM_TR_Begin (NULL); HTM_TD_Begin ("class=\"DAT LM\" style=\"width:45px;\""); - fprintf (Gbl.F.Out,"", - URL,Plg->Name); + HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\"", + URL,Plg->Name); fprintf (Gbl.F.Out,"\"%s\"", Cfg_URL_ICON_PLUGINS_PUBLIC,Gbl.Plugins.Lst[NumPlg].Logo, @@ -147,8 +147,8 @@ void Plg_ListPlugins (void) HTM_TD_End (); HTM_TD_Begin ("class=\"DAT LM\""); - fprintf (Gbl.F.Out,"", - URL,Plg->Name); + HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\"", + URL,Plg->Name); fprintf (Gbl.F.Out,"%s",Plg->Name); HTM_A_End (); HTM_TD_End (); diff --git a/swad_project.c b/swad_project.c index 44951e2a5..2b19707c7 100644 --- a/swad_project.c +++ b/swad_project.c @@ -1457,10 +1457,10 @@ static void Prj_PutIconToToggleProject (unsigned UniqueId, extern const char *The_ClassFormInBox[The_NUM_THEMES]; /***** Link to toggle on/off some fields of project *****/ - fprintf (Gbl.F.Out,"", - Text,The_ClassFormInBox[Gbl.Prefs.Theme], - UniqueId); + HTM_A_Begin ("href=\"\" title=\"%s\" class=\"%s\"" + " onclick=\"toggleProject('%u');return false;\"", + Text,The_ClassFormInBox[Gbl.Prefs.Theme], + UniqueId); Ico_PutIconTextLink (Icon,Text); HTM_A_End (); } @@ -1601,8 +1601,8 @@ static void Prj_ShowOneProjectDepartment (const struct Project *Prj, break; } if (PutLink) - fprintf (Gbl.F.Out,"", - Dpt.WWW,ClassData); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"", + Dpt.WWW,ClassData); fprintf (Gbl.F.Out,"%s",Dpt.FullName); if (PutLink) HTM_A_End (); @@ -1777,7 +1777,7 @@ static void Prj_ShowOneProjectURL (const struct Project *Prj, break; } if (PutLink) - fprintf (Gbl.F.Out,"",Prj->URL); + HTM_A_Begin ("href=\"%s\" target=\"_blank\"",Prj->URL); fprintf (Gbl.F.Out,"%s",Prj->URL); if (PutLink) HTM_A_End (); diff --git a/swad_record.c b/swad_record.c index 42b070ac8..71759b0fd 100644 --- a/swad_record.c +++ b/swad_record.c @@ -2850,8 +2850,7 @@ static void Rec_ShowEmail (struct UsrData *UsrDat,const char *ClassForm) HTM_DIV_Begin ("class=\"REC_EMAIL\""); // Limited width if (Mai_ICanSeeOtherUsrEmail (UsrDat)) { - fprintf (Gbl.F.Out,"", - UsrDat->Email); + HTM_A_Begin ("href=\"mailto:%s\" class=\"REC_DAT_BOLD\"",UsrDat->Email); fprintf (Gbl.F.Out,"%s",UsrDat->Email); HTM_A_End (); } @@ -3465,8 +3464,7 @@ static void Rec_ShowLocalPhone (struct UsrData *UsrDat, UsrDat->LocalPhone); else if (UsrDat->LocalPhone[0]) { - fprintf (Gbl.F.Out,"", - UsrDat->LocalPhone); + HTM_A_Begin ("href=\"tel:%s\" class=\"REC_DAT_BOLD\"",UsrDat->LocalPhone); fprintf (Gbl.F.Out,"%s",UsrDat->LocalPhone); HTM_A_End (); } @@ -3544,8 +3542,7 @@ static void Rec_ShowFamilyPhone (struct UsrData *UsrDat, UsrDat->FamilyPhone); else if (UsrDat->FamilyPhone[0]) { - fprintf (Gbl.F.Out,"", - UsrDat->FamilyPhone); + HTM_A_Begin ("href=\"tel:%s\" class=\"REC_DAT_BOLD\"",UsrDat->FamilyPhone); fprintf (Gbl.F.Out,"%s",UsrDat->FamilyPhone); HTM_A_End (); } @@ -3637,9 +3634,8 @@ static void Rec_ShowInstitution (struct Instit *Ins, if (Ins->InsCod > 0) { if (Ins->WWW[0]) - fprintf (Gbl.F.Out,"", - Ins->WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"REC_DAT_BOLD\"", + Ins->WWW); fprintf (Gbl.F.Out,"%s",Ins->FullName); if (Ins->WWW[0]) HTM_A_End (); @@ -3673,9 +3669,8 @@ static void Rec_ShowCentre (struct UsrData *UsrDat, Ctr.CtrCod = UsrDat->Tch.CtrCod; Ctr_GetDataOfCentreByCod (&Ctr); if (Ctr.WWW[0]) - fprintf (Gbl.F.Out,"", - Ctr.WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"REC_DAT_BOLD\"", + Ctr.WWW); fprintf (Gbl.F.Out,"%s",Ctr.FullName); if (Ctr.WWW[0]) HTM_A_End (); @@ -3710,9 +3705,8 @@ static void Rec_ShowDepartment (struct UsrData *UsrDat, Dpt.DptCod = UsrDat->Tch.DptCod; Dpt_GetDataOfDepartmentByCod (&Dpt); if (Dpt.WWW[0]) - fprintf (Gbl.F.Out,"", - Dpt.WWW); + HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"REC_DAT_BOLD\"", + Dpt.WWW); fprintf (Gbl.F.Out,"%s",Dpt.FullName); if (Dpt.WWW[0]) HTM_A_End (); @@ -3764,8 +3758,8 @@ static void Rec_ShowOfficePhone (struct UsrData *UsrDat, HTM_TD_Begin ("class=\"REC_C2_BOT REC_DAT_BOLD LM\""); if (ShowData) { - fprintf (Gbl.F.Out,"", - UsrDat->Tch.OfficePhone); + HTM_A_Begin ("href=\"tel:%s\" class=\"REC_DAT_BOLD\"", + UsrDat->Tch.OfficePhone); fprintf (Gbl.F.Out,"%s",UsrDat->Tch.OfficePhone); HTM_A_End (); } @@ -3783,9 +3777,9 @@ static void Rec_WriteLinkToDataProtectionClause (void) extern const char *Txt_DATA_PROTECTION_CLAUSE; HTM_DIV_Begin ("class=\"CM\""); - fprintf (Gbl.F.Out,"", - Cfg_URL_DATA_PROTECTION_PUBLIC); - fprintf (Gbl.F.Out,"%s",Txt_DATA_PROTECTION_CLAUSE); + HTM_A_Begin ("class=\"TIT\" href=\"%s/\" target=\"_blank\"", + Cfg_URL_DATA_PROTECTION_PUBLIC); + fprintf (Gbl.F.Out,"%s",Txt_DATA_PROTECTION_CLAUSE); HTM_A_End (); HTM_DIV_End (); } diff --git a/swad_report.c b/swad_report.c index e17d324af..d160e5653 100644 --- a/swad_report.c +++ b/swad_report.c @@ -275,10 +275,9 @@ static void Rep_PutLinkToMyUsageReport (struct Rep_Report *Report) /***** Put anchor and report filename *****/ HTM_DIV_Begin ("class=\"FILENAME_TXT CM\""); - fprintf (Gbl.F.Out,"", - Report->Permalink, - Txt_Report); + HTM_A_Begin ("href=\"%s\" class=\"FILENAME_TXT\" title=\"%s\" target=\"_blank\"", + Report->Permalink, + Txt_Report); fprintf (Gbl.F.Out,"\"%s\""
" "%s", diff --git a/swad_statistic.c b/swad_statistic.c index 579968d10..aff771a96 100644 --- a/swad_statistic.c +++ b/swad_statistic.c @@ -3314,9 +3314,9 @@ static void Sta_ShowNumHitsPerBanner (unsigned long NumRows, Lay_ShowErrorAndExit ("Wrong banner code."); Ban_GetDataOfBannerByCod (&Ban); HTM_TD_Begin ("class=\"LOG LT\""); - fprintf (Gbl.F.Out,"
", - Ban.WWW, - Ban.FullName); + HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\"", + Ban.WWW, + Ban.FullName); fprintf (Gbl.F.Out,"\"%s\"", - NumOpt); + HTM_A_Begin ("href=\"\" id=\"exp_%u\"%s" + " onclick=\"toggleAnswer('%u');return false;\"", + NumOpt, + DisplayRightColumn ? " style=\"display:none;\"" : // Answer does have content ==> Hide icon + "", + NumOpt); fprintf (Gbl.F.Out,"\"%s\"", Cfg_URL_ICON_PUBLIC, @@ -5355,10 +5356,12 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1], snprintf (Gbl.Title,sizeof (Gbl.Title), "%s %c)", Txt_Contract,'a' + (char) NumOpt); - fprintf (Gbl.F.Out,"",NumOpt); + HTM_A_Begin ("href=\"\" id=\"con_%u\"%s" + " onclick=\"toggleAnswer(%u);return false;\"", + NumOpt, + DisplayRightColumn ? "" : + " style=\"display:none;\"", // Answer does not have content ==> Hide icon + NumOpt); fprintf (Gbl.F.Out,"\"%s\"", Cfg_URL_ICON_PUBLIC, @@ -5369,10 +5372,10 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1], /***** Right column: content of the answer *****/ HTM_TD_Begin ("class=\"TEST_EDI_ANS_RIGHT_COL COLOR%u\"",Gbl.RowEvenOdd); - HTM_DIV_Begin ("id=\"ans_%u\"",NumOpt); - if (!DisplayRightColumn) // Answer does not have content - fprintf (Gbl.F.Out," style=\"display:none;\""); // Hide column - fprintf (Gbl.F.Out,">"); + HTM_DIV_Begin ("id=\"ans_%u\"%s", + NumOpt, + DisplayRightColumn ? "" : + " style=\"display:none;\""); // Answer does not have content ==> Hide column /* Answer text */ fprintf (Gbl.F.Out,"