diff --git a/swad_browser.c b/swad_browser.c index dc88a44e..167f3c9a 100644 --- a/swad_browser.c +++ b/swad_browser.c @@ -3373,75 +3373,76 @@ static void Brw_ShowFileBrowser (void) extern const char *Txt_Temporary_private_storage_area; extern const char *Txt_Project_documents; extern const char *Txt_Project_assessment; - const char *Brw_TitleOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER]; - const char *Brw_HelpOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER]; + + static const char **Brw_TitleOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER] = + { + [Brw_UNKNOWN ] = NULL, + [Brw_SHOW_DOC_CRS] = &Txt_Documents_area, + [Brw_SHOW_MRK_CRS] = &Txt_Marks_area, + [Brw_ADMI_DOC_CRS] = &Txt_Documents_management_area, + [Brw_ADMI_SHR_CRS] = &Txt_Shared_files_area, + [Brw_ADMI_SHR_GRP] = &Txt_Shared_files_area, + [Brw_ADMI_WRK_USR] = &Txt_Works_area, + [Brw_ADMI_WRK_CRS] = &Txt_Works_area, + [Brw_ADMI_MRK_CRS] = &Txt_Marks_management_area, + [Brw_ADMI_BRF_USR] = &Txt_Temporary_private_storage_area, + [Brw_SHOW_DOC_GRP] = &Txt_Documents_area, + [Brw_ADMI_DOC_GRP] = &Txt_Documents_management_area, + [Brw_SHOW_MRK_GRP] = &Txt_Marks_area, + [Brw_ADMI_MRK_GRP] = &Txt_Marks_management_area, + [Brw_ADMI_ASG_USR] = &Txt_Assignments_area, + [Brw_ADMI_ASG_CRS] = &Txt_Assignments_area, + [Brw_SHOW_DOC_DEG] = &Txt_Documents_area, + [Brw_ADMI_DOC_DEG] = &Txt_Documents_management_area, + [Brw_SHOW_DOC_CTR] = &Txt_Documents_area, + [Brw_ADMI_DOC_CTR] = &Txt_Documents_management_area, + [Brw_SHOW_DOC_INS] = &Txt_Documents_area, + [Brw_ADMI_DOC_INS] = &Txt_Documents_management_area, + [Brw_ADMI_SHR_DEG] = &Txt_Shared_files_area, + [Brw_ADMI_SHR_CTR] = &Txt_Shared_files_area, + [Brw_ADMI_SHR_INS] = &Txt_Shared_files_area, + [Brw_ADMI_TCH_CRS] = &Txt_Teachers_files_area, + [Brw_ADMI_TCH_GRP] = &Txt_Teachers_files_area, + [Brw_ADMI_DOC_PRJ] = &Txt_Project_documents, + [Brw_ADMI_ASS_PRJ] = &Txt_Project_assessment, + }; + static const char **Brw_HelpOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER] = + { + [Brw_UNKNOWN ] = NULL, + [Brw_SHOW_DOC_CRS] = &Hlp_FILES_Documents, + [Brw_SHOW_MRK_CRS] = &Hlp_FILES_Marks, + [Brw_ADMI_DOC_CRS] = &Hlp_FILES_Documents, + [Brw_ADMI_SHR_CRS] = &Hlp_FILES_Shared, + [Brw_ADMI_SHR_GRP] = &Hlp_FILES_Shared, + [Brw_ADMI_WRK_USR] = &Hlp_FILES_Homework_for_students, + [Brw_ADMI_WRK_CRS] = &Hlp_FILES_Homework_for_teachers, + [Brw_ADMI_MRK_CRS] = &Hlp_FILES_Marks, + [Brw_ADMI_BRF_USR] = &Hlp_FILES_Briefcase, + [Brw_SHOW_DOC_GRP] = &Hlp_FILES_Documents, + [Brw_ADMI_DOC_GRP] = &Hlp_FILES_Documents, + [Brw_SHOW_MRK_GRP] = &Hlp_FILES_Marks, + [Brw_ADMI_MRK_GRP] = &Hlp_FILES_Marks, + [Brw_ADMI_ASG_USR] = &Hlp_FILES_Homework_for_students, + [Brw_ADMI_ASG_CRS] = &Hlp_FILES_Homework_for_teachers, + [Brw_SHOW_DOC_DEG] = &Hlp_FILES_Documents, + [Brw_ADMI_DOC_DEG] = &Hlp_FILES_Documents, + [Brw_SHOW_DOC_CTR] = &Hlp_FILES_Documents, + [Brw_ADMI_DOC_CTR] = &Hlp_FILES_Documents, + [Brw_SHOW_DOC_INS] = &Hlp_FILES_Documents, + [Brw_ADMI_DOC_INS] = &Hlp_FILES_Documents, + [Brw_ADMI_SHR_DEG] = &Hlp_FILES_Shared, + [Brw_ADMI_SHR_CTR] = &Hlp_FILES_Shared, + [Brw_ADMI_SHR_INS] = &Hlp_FILES_Shared, + [Brw_ADMI_TCH_CRS] = &Hlp_FILES_Private, + [Brw_ADMI_TCH_GRP] = &Hlp_FILES_Private, + [Brw_ADMI_DOC_PRJ] = &Hlp_ASSESSMENT_Projects, + [Brw_ADMI_ASS_PRJ] = &Hlp_ASSESSMENT_Projects, + }; struct Brw_NumObjects Removed; char FileBrowserSectionId[32]; bool IAmTeacherOrSysAdm = Gbl.Usrs.Me.Role.Logged == Rol_TCH || Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM; - /***** Set title of file browser *****/ - Brw_TitleOfFileBrowser[Brw_UNKNOWN ] = NULL; - Brw_TitleOfFileBrowser[Brw_SHOW_DOC_CRS] = Txt_Documents_area; - Brw_TitleOfFileBrowser[Brw_SHOW_MRK_CRS] = Txt_Marks_area; - Brw_TitleOfFileBrowser[Brw_ADMI_DOC_CRS] = Txt_Documents_management_area; - Brw_TitleOfFileBrowser[Brw_ADMI_SHR_CRS] = Txt_Shared_files_area; - Brw_TitleOfFileBrowser[Brw_ADMI_SHR_GRP] = Txt_Shared_files_area; - Brw_TitleOfFileBrowser[Brw_ADMI_WRK_USR] = Txt_Works_area; - Brw_TitleOfFileBrowser[Brw_ADMI_WRK_CRS] = Txt_Works_area; - Brw_TitleOfFileBrowser[Brw_ADMI_MRK_CRS] = Txt_Marks_management_area; - Brw_TitleOfFileBrowser[Brw_ADMI_BRF_USR] = Txt_Temporary_private_storage_area; - Brw_TitleOfFileBrowser[Brw_SHOW_DOC_GRP] = Txt_Documents_area; - Brw_TitleOfFileBrowser[Brw_ADMI_DOC_GRP] = Txt_Documents_management_area; - Brw_TitleOfFileBrowser[Brw_SHOW_MRK_GRP] = Txt_Marks_area; - Brw_TitleOfFileBrowser[Brw_ADMI_MRK_GRP] = Txt_Marks_management_area; - Brw_TitleOfFileBrowser[Brw_ADMI_ASG_USR] = Txt_Assignments_area; - Brw_TitleOfFileBrowser[Brw_ADMI_ASG_CRS] = Txt_Assignments_area; - Brw_TitleOfFileBrowser[Brw_SHOW_DOC_DEG] = Txt_Documents_area; - Brw_TitleOfFileBrowser[Brw_ADMI_DOC_DEG] = Txt_Documents_management_area; - Brw_TitleOfFileBrowser[Brw_SHOW_DOC_CTR] = Txt_Documents_area; - Brw_TitleOfFileBrowser[Brw_ADMI_DOC_CTR] = Txt_Documents_management_area; - Brw_TitleOfFileBrowser[Brw_SHOW_DOC_INS] = Txt_Documents_area; - Brw_TitleOfFileBrowser[Brw_ADMI_DOC_INS] = Txt_Documents_management_area; - Brw_TitleOfFileBrowser[Brw_ADMI_SHR_DEG] = Txt_Shared_files_area; - Brw_TitleOfFileBrowser[Brw_ADMI_SHR_CTR] = Txt_Shared_files_area; - Brw_TitleOfFileBrowser[Brw_ADMI_SHR_INS] = Txt_Shared_files_area; - Brw_TitleOfFileBrowser[Brw_ADMI_TCH_CRS] = Txt_Teachers_files_area; - Brw_TitleOfFileBrowser[Brw_ADMI_TCH_GRP] = Txt_Teachers_files_area; - Brw_TitleOfFileBrowser[Brw_ADMI_DOC_PRJ] = Txt_Project_documents; - Brw_TitleOfFileBrowser[Brw_ADMI_ASS_PRJ] = Txt_Project_assessment; - - /***** Set help link of file browser *****/ - Brw_HelpOfFileBrowser[Brw_UNKNOWN ] = NULL; - Brw_HelpOfFileBrowser[Brw_SHOW_DOC_CRS] = Hlp_FILES_Documents; - Brw_HelpOfFileBrowser[Brw_SHOW_MRK_CRS] = Hlp_FILES_Marks; - Brw_HelpOfFileBrowser[Brw_ADMI_DOC_CRS] = Hlp_FILES_Documents; - Brw_HelpOfFileBrowser[Brw_ADMI_SHR_CRS] = Hlp_FILES_Shared; - Brw_HelpOfFileBrowser[Brw_ADMI_SHR_GRP] = Hlp_FILES_Shared; - Brw_HelpOfFileBrowser[Brw_ADMI_WRK_USR] = Hlp_FILES_Homework_for_students; - Brw_HelpOfFileBrowser[Brw_ADMI_WRK_CRS] = Hlp_FILES_Homework_for_teachers; - Brw_HelpOfFileBrowser[Brw_ADMI_MRK_CRS] = Hlp_FILES_Marks; - Brw_HelpOfFileBrowser[Brw_ADMI_BRF_USR] = Hlp_FILES_Briefcase; - Brw_HelpOfFileBrowser[Brw_SHOW_DOC_GRP] = Hlp_FILES_Documents; - Brw_HelpOfFileBrowser[Brw_ADMI_DOC_GRP] = Hlp_FILES_Documents; - Brw_HelpOfFileBrowser[Brw_SHOW_MRK_GRP] = Hlp_FILES_Marks; - Brw_HelpOfFileBrowser[Brw_ADMI_MRK_GRP] = Hlp_FILES_Marks; - Brw_HelpOfFileBrowser[Brw_ADMI_ASG_USR] = Hlp_FILES_Homework_for_students; - Brw_HelpOfFileBrowser[Brw_ADMI_ASG_CRS] = Hlp_FILES_Homework_for_teachers; - Brw_HelpOfFileBrowser[Brw_SHOW_DOC_DEG] = Hlp_FILES_Documents; - Brw_HelpOfFileBrowser[Brw_ADMI_DOC_DEG] = Hlp_FILES_Documents; - Brw_HelpOfFileBrowser[Brw_SHOW_DOC_CTR] = Hlp_FILES_Documents; - Brw_HelpOfFileBrowser[Brw_ADMI_DOC_CTR] = Hlp_FILES_Documents; - Brw_HelpOfFileBrowser[Brw_SHOW_DOC_INS] = Hlp_FILES_Documents; - Brw_HelpOfFileBrowser[Brw_ADMI_DOC_INS] = Hlp_FILES_Documents; - Brw_HelpOfFileBrowser[Brw_ADMI_SHR_DEG] = Hlp_FILES_Shared; - Brw_HelpOfFileBrowser[Brw_ADMI_SHR_CTR] = Hlp_FILES_Shared; - Brw_HelpOfFileBrowser[Brw_ADMI_SHR_INS] = Hlp_FILES_Shared; - Brw_HelpOfFileBrowser[Brw_ADMI_TCH_CRS] = Hlp_FILES_Private; - Brw_HelpOfFileBrowser[Brw_ADMI_TCH_GRP] = Hlp_FILES_Private; - Brw_HelpOfFileBrowser[Brw_ADMI_DOC_PRJ] = Hlp_ASSESSMENT_Projects; - Brw_HelpOfFileBrowser[Brw_ADMI_ASS_PRJ] = Hlp_ASSESSMENT_Projects; - /***** Set contextual icon in box *****/ Gbl.FileBrowser.IconViewEdit = Brw_ICON_NONE; switch (Gbl.FileBrowser.Type) @@ -3512,9 +3513,9 @@ static void Brw_ShowFileBrowser (void) "file_browser_%u",Gbl.FileBrowser.Id); HTM_SECTION_Begin (FileBrowserSectionId); - Box_BoxBegin ("100%",Brw_TitleOfFileBrowser[Gbl.FileBrowser.Type], + Box_BoxBegin ("100%",*Brw_TitleOfFileBrowser[Gbl.FileBrowser.Type], Brw_PutIconsFileBrowser,NULL, - Brw_HelpOfFileBrowser[Gbl.FileBrowser.Type],Box_NOT_CLOSABLE); + *Brw_HelpOfFileBrowser[Gbl.FileBrowser.Type],Box_NOT_CLOSABLE); /***** Subtitle *****/ Brw_WriteSubtitleOfFileBrowser (); @@ -5769,12 +5770,12 @@ static void Brw_WriteCurrentClipboard (void) Usr_MAX_BYTES_FULL_NAME + Prj_MAX_BYTES_PROJECT_TITLE]; char FileNameToShow[NAME_MAX + 1]; - const char *TxtFileType[Brw_NUM_FILE_TYPES] = + static const char **TxtFileType[Brw_NUM_FILE_TYPES] = { - [Brw_IS_UNKNOWN] = Txt_file_folder, - [Brw_IS_FILE ] = Txt_file, - [Brw_IS_FOLDER ] = Txt_folder, - [Brw_IS_LINK ] = Txt_link, + [Brw_IS_UNKNOWN] = &Txt_file_folder, + [Brw_IS_FILE ] = &Txt_file, + [Brw_IS_FOLDER ] = &Txt_folder, + [Brw_IS_LINK ] = &Txt_link, }; switch (Gbl.FileBrowser.Clipboard.FileBrowser) @@ -5987,7 +5988,7 @@ static void Brw_WriteCurrentClipboard (void) Ale_ShowAlert (Ale_CLIPBOARD,"%s: %s, %s %s.", Txt_Copy_source,TxtClipboardZone, - TxtFileType[Gbl.FileBrowser.Clipboard.FilFolLnk.Type], + *TxtFileType[Gbl.FileBrowser.Clipboard.FilFolLnk.Type], FileNameToShow); } else diff --git a/swad_changelog.h b/swad_changelog.h index 6c19f17e..0228a6b9 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -602,13 +602,14 @@ TODO: FIX BUG, URGENT! En las fechas como par TODO: En las encuestas, que los estudiantes no puedan ver los resultados hasta que no finalice el plazo. */ -#define Log_PLATFORM_VERSION "SWAD 21.56.1 (2021-11-10)" +#define Log_PLATFORM_VERSION "SWAD 21.56.2 (2021-11-10)" #define CSS_FILE "swad20.45.css" #define JS_FILE "swad20.69.1.js" /* TODO: Rename CENTRE to CENTER in help wiki. TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams + Version 21.56.2: Nov 10, 2021 Code refactoring in pointers to text. (319501 lines) Version 21.56.1: Nov 10, 2021 Code refactoring in switch statements (until swad_enrolment.c). (319490 lines) Version 21.56: Nov 10, 2021 Code refactoring in hierarchy. (319618 lines) Version 21.55.2: Nov 10, 2021 Code refactoring in switch statements (until swad_button.c). (319875 lines) diff --git a/swad_country_database.c b/swad_country_database.c index 24ee0d86..bbe2e43b 100644 --- a/swad_country_database.c +++ b/swad_country_database.c @@ -159,7 +159,8 @@ unsigned Cty_DB_GetCtysFull (MYSQL_RES **mysql_res) static const char *OrderBySubQueryFmt[Cty_NUM_ORDERS] = { [Cty_ORDER_BY_COUNTRY ] = "Name_%s", - [Cty_ORDER_BY_NUM_USRS] = "NumUsrs DESC,Name_%s", + [Cty_ORDER_BY_NUM_USRS] = "NumUsrs DESC," + "Name_%s", }; unsigned NumCtys; Lan_Language_t Lan; diff --git a/swad_date.c b/swad_date.c index 1911ee93..ae7f8436 100644 --- a/swad_date.c +++ b/swad_date.c @@ -1639,7 +1639,7 @@ void Dat_WriteLocalDateHMSFromUTC (const char *Id,time_t TimeUTC, bool WriteToday,bool WriteDateOnSameDay, bool WriteWeekDay,unsigned WriteHMS) { - static const char *SeparatorStr[] = + static const char *SeparatorStr[Dat_NUM_SEPARATORS] = { [Dat_SEPARATOR_NONE ] = "", [Dat_SEPARATOR_COMMA] = ", ", diff --git a/swad_date.h b/swad_date.h index 89b85a9a..d7de8d7b 100644 --- a/swad_date.h +++ b/swad_date.h @@ -114,6 +114,7 @@ typedef enum } Dat_Format_t; // Do not change these numbers because they are used in database #define Dat_FORMAT_DEFAULT Dat_FORMAT_YYYY_MM_DD +#define Dat_NUM_SEPARATORS 3 typedef enum { Dat_SEPARATOR_NONE, // No separator diff --git a/swad_degree_database.c b/swad_degree_database.c index 7441d052..df471784 100644 --- a/swad_degree_database.c +++ b/swad_degree_database.c @@ -83,7 +83,8 @@ unsigned Deg_DB_GetDegreeTypes (MYSQL_RES **mysql_res, static const char *OrderBySubQuery[DegTyp_NUM_ORDERS] = { [DegTyp_ORDER_BY_DEGREE_TYPE] = "DegTypName", - [DegTyp_ORDER_BY_NUM_DEGREES] = "NumDegs DESC,DegTypName", + [DegTyp_ORDER_BY_NUM_DEGREES] = "NumDegs DESC," + "DegTypName", }; /***** Get types of degree from database *****/ diff --git a/swad_department_database.c b/swad_department_database.c index 12cfd2ae..ae0b3bb2 100644 --- a/swad_department_database.c +++ b/swad_department_database.c @@ -64,7 +64,8 @@ unsigned Dpt_DB_GetListDepartments (MYSQL_RES **mysql_res, static const char *OrderBySubQuery[Dpt_NUM_ORDERS] = { [Dpt_ORDER_BY_DEPARTMENT] = "FullName", - [Dpt_ORDER_BY_NUM_TCHS ] = "NumTchs DESC,FullName", + [Dpt_ORDER_BY_NUM_TCHS ] = "NumTchs DESC," + "FullName", }; return (unsigned) diff --git a/swad_exam_database.c b/swad_exam_database.c index 45cba36b..4faccfee 100644 --- a/swad_exam_database.c +++ b/swad_exam_database.c @@ -124,8 +124,12 @@ unsigned Exa_DB_GetListExams (MYSQL_RES **mysql_res,Exa_Order_t SelectedOrder) { static const char *OrderBySubQuery[Exa_NUM_ORDERS] = { - [Exa_ORDER_BY_START_DATE] = "StartTime DESC,EndTime DESC,exa_exams.Title DESC", - [Exa_ORDER_BY_END_DATE ] = "EndTime DESC,StartTime DESC,exa_exams.Title DESC", + [Exa_ORDER_BY_START_DATE] = "StartTime DESC," + "EndTime DESC," + "exa_exams.Title DESC", + [Exa_ORDER_BY_END_DATE ] = "EndTime DESC," + "StartTime DESC," + "exa_exams.Title DESC", [Exa_ORDER_BY_TITLE ] = "exa_exams.Title", }; char *HiddenSubQuery; diff --git a/swad_exam_set.c b/swad_exam_set.c index fafbe29a..e15582c7 100644 --- a/swad_exam_set.c +++ b/swad_exam_set.c @@ -951,10 +951,10 @@ static void ExaSet_ListOneOrMoreQuestionsForEdition (struct Exa_Exams *Exams, [Qst_INVALID_QUESTION] = "times-red.svg", [Qst_VALID_QUESTION ] = "check-green.svg", }; - const char *Title[Qst_NUM_VALIDITIES] = + static const char **Title[Qst_NUM_VALIDITIES] = { - [Qst_INVALID_QUESTION] = Txt_Invalid_question, - [Qst_VALID_QUESTION ] = Txt_Valid_question, + [Qst_INVALID_QUESTION] = &Txt_Invalid_question, + [Qst_VALID_QUESTION ] = &Txt_Valid_question, }; /***** Begin table *****/ @@ -1005,7 +1005,7 @@ static void ExaSet_ListOneOrMoreQuestionsForEdition (struct Exa_Exams *Exams, Lay_PutContextualLinkOnlyIcon (NextAction[Question.Validity],Anchor, ExaSet_PutParamsOneQst,Exams, Icon[Question.Validity], - Title[Question.Validity]); + *Title[Question.Validity]); HTM_TD_End (); diff --git a/swad_follow.c b/swad_follow.c index 0d739106..5db6efaf 100644 --- a/swad_follow.c +++ b/swad_follow.c @@ -76,8 +76,8 @@ static void Fol_ListFollowersUsr (struct UsrData *UsrDat); static void Fol_ShowFollowedOrFollower (struct UsrData *UsrDat); static void Fol_WriteRowUsrToFollowOnRightColumn (struct UsrData *UsrDat); static void Fol_PutInactiveIconToFollowUnfollow (void); -static void Fol_PutIconToFollow (struct UsrData *UsrDat); -static void Fol_PutIconToUnfollow (struct UsrData *UsrDat); +static void Fol_PutIconToFollow (const char EncryptedUsrCod[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1]); +static void Fol_PutIconToUnfollow (const char EncryptedUsrCod[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1]); static void Fol_RequestFollowUsrs (Act_Action_t NextAction); static void Fol_RequestUnfollowUsrs (Act_Action_t NextAction); @@ -135,34 +135,34 @@ void Fol_SuggestUsrsToFollowMainZone (void) Fol_PutIconsWhoToFollow,NULL, Hlp_START_Profiles_who_to_follow,Box_NOT_CLOSABLE,2); - /***** Initialize structure with user's data *****/ - Usr_UsrDataConstructor (&UsrDat); + /***** Initialize structure with user's data *****/ + Usr_UsrDataConstructor (&UsrDat); - /***** List users *****/ - for (NumUsr = 0; - NumUsr < NumUsrs; - NumUsr++) - { - /***** Get user *****/ - row = mysql_fetch_row (mysql_res); + /***** List users *****/ + for (NumUsr = 0; + NumUsr < NumUsrs; + NumUsr++) + { + /***** Get user *****/ + row = mysql_fetch_row (mysql_res); - /* Get user's code (row[0]) */ - UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[0]); + /* Get user's code (row[0]) */ + UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[0]); - /***** Show user *****/ - if ((NumUsr % Fol_NUM_COLUMNS_FOLLOW) == 0) - HTM_TR_Begin (NULL); - if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat, - Usr_DONT_GET_PREFS, - Usr_DONT_GET_ROLE_IN_CURRENT_CRS)) - Fol_ShowFollowedOrFollower (&UsrDat); - if ((NumUsr % Fol_NUM_COLUMNS_FOLLOW) == (Fol_NUM_COLUMNS_FOLLOW-1) || - NumUsr == NumUsrs - 1) - HTM_TR_End (); - } + /***** Show user *****/ + if ((NumUsr % Fol_NUM_COLUMNS_FOLLOW) == 0) + HTM_TR_Begin (NULL); + if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat, + Usr_DONT_GET_PREFS, + Usr_DONT_GET_ROLE_IN_CURRENT_CRS)) + Fol_ShowFollowedOrFollower (&UsrDat); + if ((NumUsr % Fol_NUM_COLUMNS_FOLLOW) == (Fol_NUM_COLUMNS_FOLLOW-1) || + NumUsr == NumUsrs - 1) + HTM_TR_End (); + } - /***** Free memory used for user's data *****/ - Usr_UsrDataDestructor (&UsrDat); + /***** Free memory used for user's data *****/ + Usr_UsrDataDestructor (&UsrDat); /***** End table and box *****/ Box_BoxTableEnd (); @@ -198,42 +198,42 @@ void Fol_SuggestUsrsToFollowMainZoneOnRightColumn (void) /***** Begin container *****/ HTM_DIV_Begin ("class=\"CONNECTED\""); - /***** Title with link to suggest more users to follow *****/ - Frm_BeginForm (ActSeeSocPrf); - HTM_BUTTON_SUBMIT_Begin (Txt_Who_to_follow,"BT_LINK CONNECTED_TXT",NULL); - HTM_Txt (Txt_Who_to_follow); - HTM_BUTTON_End (); - Frm_EndForm (); + /***** Title with link to suggest more users to follow *****/ + Frm_BeginForm (ActSeeSocPrf); + HTM_BUTTON_SUBMIT_Begin (Txt_Who_to_follow,"BT_LINK CONNECTED_TXT",NULL); + HTM_Txt (Txt_Who_to_follow); + HTM_BUTTON_End (); + Frm_EndForm (); - /***** Begin table *****/ - HTM_TABLE_Begin (NULL); + /***** Begin table *****/ + HTM_TABLE_Begin (NULL); - /***** Initialize structure with user's data *****/ - Usr_UsrDataConstructor (&UsrDat); + /***** Initialize structure with user's data *****/ + Usr_UsrDataConstructor (&UsrDat); - /***** List users *****/ - for (NumUsr = 0; - NumUsr < NumUsrs; - NumUsr++) - { - /***** Get user *****/ - row = mysql_fetch_row (mysql_res); + /***** List users *****/ + for (NumUsr = 0; + NumUsr < NumUsrs; + NumUsr++) + { + /***** Get user *****/ + row = mysql_fetch_row (mysql_res); - /* Get user's code (row[0]) */ - UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[0]); + /* Get user's code (row[0]) */ + UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[0]); - /***** Show user *****/ - if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat, - Usr_DONT_GET_PREFS, - Usr_DONT_GET_ROLE_IN_CURRENT_CRS)) - Fol_WriteRowUsrToFollowOnRightColumn (&UsrDat); - } + /***** Show user *****/ + if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat, + Usr_DONT_GET_PREFS, + Usr_DONT_GET_ROLE_IN_CURRENT_CRS)) + Fol_WriteRowUsrToFollowOnRightColumn (&UsrDat); + } - /***** Free memory used for user's data *****/ - Usr_UsrDataDestructor (&UsrDat); + /***** Free memory used for user's data *****/ + Usr_UsrDataDestructor (&UsrDat); - /***** End table *****/ - HTM_TABLE_End (); + /***** End table *****/ + HTM_TABLE_End (); /***** End container *****/ HTM_DIV_End (); @@ -265,9 +265,9 @@ static void Fol_PutIconToUpdateWhoToFollow (void) extern const char *Txt_Update; Frm_BeginForm (ActSeeSocPrf); - HTM_BUTTON_Animated_Begin (Txt_Update,"BT_LINK",NULL); - Ico_PutCalculateIcon (Txt_Update); - HTM_BUTTON_End (); + HTM_BUTTON_Animated_Begin (Txt_Update,"BT_LINK",NULL); + Ico_PutCalculateIcon (Txt_Update); + HTM_BUTTON_End (); Frm_EndForm (); } @@ -324,55 +324,55 @@ void Fol_ShowFollowingAndFollowers (const struct UsrData *UsrDat, /***** Begin section *****/ HTM_SECTION_Begin (Fol_FOLLOW_SECTION_ID); - /***** Followed users *****/ - HTM_DIV_Begin ("id=\"following_side\""); - HTM_DIV_Begin ("class=\"FOLLOW_SIDE\""); + /***** Followed users *****/ + HTM_DIV_Begin ("id=\"following_side\""); + HTM_DIV_Begin ("class=\"FOLLOW_SIDE\""); - /* User follows me? */ - HTM_DIV_Begin ("id=\"follows_me\" class=\"DAT_LIGHT\""); - if (UsrFollowsMe) - HTM_Txt (Txt_FOLLOWS_YOU); - HTM_DIV_End (); + /* User follows me? */ + HTM_DIV_Begin ("id=\"follows_me\" class=\"DAT_LIGHT\""); + if (UsrFollowsMe) + HTM_Txt (Txt_FOLLOWS_YOU); + HTM_DIV_End (); - /* Number of followed */ - Fol_ShowNumberOfFollowingOrFollowers (UsrDat, - NumFollowing, - ActSeeFlg,Txt_Following); + /* Number of followed */ + Fol_ShowNumberOfFollowingOrFollowers (UsrDat, + NumFollowing, + ActSeeFlg,Txt_Following); - /* End following side */ - HTM_DIV_End (); - HTM_DIV_End (); + /* End following side */ + HTM_DIV_End (); + HTM_DIV_End (); - /***** Followers *****/ - HTM_DIV_Begin ("id=\"followers_side\""); - HTM_DIV_Begin ("class=\"FOLLOW_SIDE\""); + /***** Followers *****/ + HTM_DIV_Begin ("id=\"followers_side\""); + HTM_DIV_Begin ("class=\"FOLLOW_SIDE\""); - /* Number of followers */ - Fol_ShowNumberOfFollowingOrFollowers (UsrDat, - NumFollowers, - ActSeeFlr,Txt_Followers); + /* Number of followers */ + Fol_ShowNumberOfFollowingOrFollowers (UsrDat, + NumFollowers, + ActSeeFlr,Txt_Followers); - /* I follow user? */ - HTM_DIV_Begin ("id=\"follow_usr\""); - if (Gbl.Usrs.Me.Logged && // Logged - !ItsMe) // Not me! - { - Frm_BeginForm (IFollowUsr ? ActUnfUsr : - ActFolUsr); - Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod); - HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC, - IFollowUsr ? "user-check.svg" : - "user-plus.svg", - IFollowUsr ? Txt_Following_unfollow : - Txt_Follow, - "ICO_HIGHLIGHT ICO40x40"); - Frm_EndForm (); - } - HTM_DIV_End (); + /* I follow user? */ + HTM_DIV_Begin ("id=\"follow_usr\""); + if (Gbl.Usrs.Me.Logged && // Logged + !ItsMe) // Not me! + { + Frm_BeginForm (IFollowUsr ? ActUnfUsr : + ActFolUsr); + Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod); + HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC, + IFollowUsr ? "user-check.svg" : + "user-plus.svg", + IFollowUsr ? Txt_Following_unfollow : + Txt_Follow, + "ICO_HIGHLIGHT ICO40x40"); + Frm_EndForm (); + } + HTM_DIV_End (); - /* End followers side */ - HTM_DIV_End (); - HTM_DIV_End (); + /* End followers side */ + HTM_DIV_End (); + HTM_DIV_End (); /***** End section *****/ HTM_SECTION_End (); @@ -395,50 +395,50 @@ static void Fol_ShowNumberOfFollowingOrFollowers (const struct UsrData *UsrDat, /***** Begin container *****/ HTM_DIV_Begin ("class=\"FOLLOW_BOX\""); - /***** Number *****/ - if (NumUsrs) - { - /* Form to list users */ - Frm_BeginFormAnchor (Action,Fol_FOLLOW_SECTION_ID); - Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod); - HTM_BUTTON_SUBMIT_Begin (Title, - (Gbl.Action.Act == Action) ? "BT_LINK FOLLOW_NUM_B" : - "BT_LINK FOLLOW_NUM", - NULL); - } - else - HTM_SPAN_Begin ("class=\"%s\"",(Gbl.Action.Act == Action) ? "FOLLOW_NUM_B" : - "FOLLOW_NUM"); - HTM_Unsigned (NumUsrs); - if (NumUsrs) - { - HTM_BUTTON_End (); - Frm_EndForm (); - } - else - HTM_SPAN_End (); + /***** Number *****/ + if (NumUsrs) + { + /* Form to list users */ + Frm_BeginFormAnchor (Action,Fol_FOLLOW_SECTION_ID); + Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod); + HTM_BUTTON_SUBMIT_Begin (Title, + (Gbl.Action.Act == Action) ? "BT_LINK FOLLOW_NUM_B" : + "BT_LINK FOLLOW_NUM", + NULL); + } + else + HTM_SPAN_Begin ("class=\"%s\"",(Gbl.Action.Act == Action) ? "FOLLOW_NUM_B" : + "FOLLOW_NUM"); + HTM_Unsigned (NumUsrs); + if (NumUsrs) + { + HTM_BUTTON_End (); + Frm_EndForm (); + } + else + HTM_SPAN_End (); - /***** Text *****/ - HTM_DIV_Begin ("class=\"%s\"", - (Gbl.Action.Act == Action) ? The_ClassFormOutBoxBold[Gbl.Prefs.Theme] : - The_ClassFormOutBox [Gbl.Prefs.Theme]); - if (NumUsrs) - { - /* Form to list users */ - Frm_BeginFormAnchor (Action,Fol_FOLLOW_SECTION_ID); - Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod); - HTM_BUTTON_SUBMIT_Begin (Title, - (Gbl.Action.Act == Action) ? The_ClassFormLinkOutBoxBold[Gbl.Prefs.Theme] : - The_ClassFormLinkOutBox [Gbl.Prefs.Theme], - NULL); - } - HTM_Txt (Title); - if (NumUsrs) - { - HTM_BUTTON_End (); - Frm_EndForm (); - } - HTM_DIV_End (); + /***** Text *****/ + HTM_DIV_Begin ("class=\"%s\"", + (Gbl.Action.Act == Action) ? The_ClassFormOutBoxBold[Gbl.Prefs.Theme] : + The_ClassFormOutBox [Gbl.Prefs.Theme]); + if (NumUsrs) + { + /* Form to list users */ + Frm_BeginFormAnchor (Action,Fol_FOLLOW_SECTION_ID); + Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod); + HTM_BUTTON_SUBMIT_Begin (Title, + (Gbl.Action.Act == Action) ? The_ClassFormLinkOutBoxBold[Gbl.Prefs.Theme] : + The_ClassFormLinkOutBox [Gbl.Prefs.Theme], + NULL); + } + HTM_Txt (Title); + if (NumUsrs) + { + HTM_BUTTON_End (); + Frm_EndForm (); + } + HTM_DIV_End (); /***** End container *****/ HTM_DIV_End (); @@ -490,24 +490,24 @@ static void Fol_ListFollowingUsr (struct UsrData *UsrDat) NULL,NULL, NULL,Box_NOT_CLOSABLE,2); - for (NumUsr = 0; - NumUsr < NumUsrs; - NumUsr++) - { - /***** Get user's code *****/ - FollowingUsrDat.UsrCod = DB_GetNextCode (mysql_res); + for (NumUsr = 0; + NumUsr < NumUsrs; + NumUsr++) + { + /***** Get user's code *****/ + FollowingUsrDat.UsrCod = DB_GetNextCode (mysql_res); - /***** Show user *****/ - if ((NumUsr % Fol_NUM_COLUMNS_FOLLOW) == 0) - HTM_TR_Begin (NULL); - if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&FollowingUsrDat, - Usr_DONT_GET_PREFS, - Usr_DONT_GET_ROLE_IN_CURRENT_CRS)) - Fol_ShowFollowedOrFollower (&FollowingUsrDat); - if ((NumUsr % Fol_NUM_COLUMNS_FOLLOW) == (Fol_NUM_COLUMNS_FOLLOW-1) || - NumUsr == NumUsrs - 1) - HTM_TR_End (); - } + /***** Show user *****/ + if ((NumUsr % Fol_NUM_COLUMNS_FOLLOW) == 0) + HTM_TR_Begin (NULL); + if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&FollowingUsrDat, + Usr_DONT_GET_PREFS, + Usr_DONT_GET_ROLE_IN_CURRENT_CRS)) + Fol_ShowFollowedOrFollower (&FollowingUsrDat); + if ((NumUsr % Fol_NUM_COLUMNS_FOLLOW) == (Fol_NUM_COLUMNS_FOLLOW-1) || + NumUsr == NumUsrs - 1) + HTM_TR_End (); + } /***** End table and box *****/ Box_BoxTableEnd (); @@ -649,10 +649,10 @@ static void Fol_ShowFollowedOrFollower (struct UsrData *UsrDat) if (Fol_DB_CheckUsrIsFollowerOf (Gbl.Usrs.Me.UsrDat.UsrCod, UsrDat->UsrCod)) // I follow user /* Form to unfollow */ - Fol_PutIconToUnfollow (UsrDat); + Fol_PutIconToUnfollow (UsrDat->EnUsrCod); else if (Visible) // I do not follow this user and I can follow /* Form to follow */ - Fol_PutIconToFollow (UsrDat); + Fol_PutIconToFollow (UsrDat->EnUsrCod); } HTM_TD_End (); @@ -705,10 +705,10 @@ static void Fol_WriteRowUsrToFollowOnRightColumn (struct UsrData *UsrDat) if (Fol_DB_CheckUsrIsFollowerOf (Gbl.Usrs.Me.UsrDat.UsrCod, UsrDat->UsrCod)) // I follow user /* Form to unfollow */ - Fol_PutIconToUnfollow (UsrDat); + Fol_PutIconToUnfollow (UsrDat->EnUsrCod); else if (Visible) // I do not follow this user and I can follow /* Form to follow */ - Fol_PutIconToFollow (UsrDat); + Fol_PutIconToFollow (UsrDat->EnUsrCod); } HTM_TD_End (); @@ -725,7 +725,7 @@ static void Fol_PutInactiveIconToFollowUnfollow (void) { /***** Inactive icon to follow/unfollow *****/ HTM_DIV_Begin ("class=\"FOLLOW_USR_ICO ICO_HIDDEN\""); - Ico_PutIcon ("user.svg","","ICO16x16"); + Ico_PutIcon ("user.svg","","ICO16x16"); HTM_DIV_End (); } @@ -733,15 +733,15 @@ static void Fol_PutInactiveIconToFollowUnfollow (void) /*********************** Put icon to follow another user *********************/ /*****************************************************************************/ -static void Fol_PutIconToFollow (struct UsrData *UsrDat) +static void Fol_PutIconToFollow (const char EncryptedUsrCod[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1]) { extern const char *Txt_Follow; /***** Form to unfollow *****/ Frm_BeginForm (ActFolUsr); - Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod); - HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-plus.svg", - Txt_Follow,"FOLLOW_USR_ICO ICO_HIGHLIGHT ICO16x16"); + Usr_PutParamUsrCodEncrypted (EncryptedUsrCod); + HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-plus.svg", + Txt_Follow,"FOLLOW_USR_ICO ICO_HIGHLIGHT ICO16x16"); Frm_EndForm (); } @@ -749,15 +749,15 @@ static void Fol_PutIconToFollow (struct UsrData *UsrDat) /********************** Put icon to unfollow another user ********************/ /*****************************************************************************/ -static void Fol_PutIconToUnfollow (struct UsrData *UsrDat) +static void Fol_PutIconToUnfollow (const char EncryptedUsrCod[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1]) { extern const char *Txt_Unfollow; /* Form to follow */ Frm_BeginForm (ActUnfUsr); - Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod); - HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-check.svg", - Txt_Unfollow,"FOLLOW_USR_ICO ICO_HIGHLIGHT ICO16x16"); + Usr_PutParamUsrCodEncrypted (EncryptedUsrCod); + HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-check.svg", + Txt_Unfollow,"FOLLOW_USR_ICO ICO_HIGHLIGHT ICO16x16"); Frm_EndForm (); } diff --git a/swad_game_database.c b/swad_game_database.c index d34f0140..b4d3f78b 100644 --- a/swad_game_database.c +++ b/swad_game_database.c @@ -123,7 +123,6 @@ unsigned Gam_DB_GetListGames (MYSQL_RES **mysql_res,Gam_Order_t SelectedOrder) "gam_games.Title DESC", [Gam_ORDER_BY_TITLE ] = "gam_games.Title", }; - ; char *HiddenSubQuery; unsigned NumGames; diff --git a/swad_institution_database.c b/swad_institution_database.c index e32864c9..519922d7 100644 --- a/swad_institution_database.c +++ b/swad_institution_database.c @@ -298,7 +298,8 @@ unsigned Ins_DB_GetFullListOfInssInCty (MYSQL_RES **mysql_res,long CtyCod) static const char *OrderBySubQuery[Ins_NUM_ORDERS] = { [Ins_ORDER_BY_INSTITUTION] = "FullName", - [Ins_ORDER_BY_NUM_USRS ] = "NumUsrs DESC,FullName", + [Ins_ORDER_BY_NUM_USRS ] = "NumUsrs DESC," + "FullName", }; /***** Get institutions from database *****/ diff --git a/swad_message.c b/swad_message.c index 2bdb5da8..828cdf43 100644 --- a/swad_message.c +++ b/swad_message.c @@ -1788,11 +1788,11 @@ static void Msg_ShowFormSelectCourseSentOrRecMsgs (const struct Msg_Messages *Me extern const char *Txt_Messages_received_from_A_COURSE; extern const char *Txt_Messages_sent_from_A_COURSE; extern const char *Txt_any_course; - const char *TxtSelector[Msg_NUM_TYPES_OF_MSGS] = + static const char **TxtSelector[Msg_NUM_TYPES_OF_MSGS] = { [Msg_WRITING ] = NULL, - [Msg_RECEIVED] = Txt_Messages_received_from_A_COURSE, - [Msg_SENT ] = Txt_Messages_sent_from_A_COURSE + [Msg_RECEIVED] = &Txt_Messages_received_from_A_COURSE, + [Msg_SENT ] = &Txt_Messages_sent_from_A_COURSE }; MYSQL_RES *mysql_res; MYSQL_ROW row; @@ -1815,7 +1815,7 @@ static void Msg_ShowFormSelectCourseSentOrRecMsgs (const struct Msg_Messages *Me /***** Course selection *****/ HTM_LABEL_Begin ("class=\"%s\"",The_ClassFormInBox[Gbl.Prefs.Theme]); - HTM_TxtF ("%s ",TxtSelector[Messages->TypeOfMessages]); + HTM_TxtF ("%s ",*TxtSelector[Messages->TypeOfMessages]); HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE, "name=\"FilterCrsCod\""); @@ -1855,11 +1855,11 @@ static void Msg_ShowFormToFilterMsgs (const struct Msg_Messages *Messages) extern const char *Txt_MSG_From; extern const char *Txt_MSG_To; extern const char *Txt_MSG_Content; - const char *TxtFromTo[Msg_NUM_TYPES_OF_MSGS] = + static const char **TxtFromTo[Msg_NUM_TYPES_OF_MSGS] = { [Msg_WRITING ] = NULL, - [Msg_RECEIVED] = Txt_MSG_From, - [Msg_SENT ] = Txt_MSG_To + [Msg_RECEIVED] = &Txt_MSG_From, + [Msg_SENT ] = &Txt_MSG_To }; /***** Begin table *****/ @@ -1870,7 +1870,7 @@ static void Msg_ShowFormToFilterMsgs (const struct Msg_Messages *Messages) /***** Filter authors/recipients *****/ HTM_TD_Begin ("class=\"LM\""); HTM_LABEL_Begin ("class=\"%s\"",The_ClassFormInBox[Gbl.Prefs.Theme]); - HTM_TxtColonNBSP (TxtFromTo[Messages->TypeOfMessages]); + HTM_TxtColonNBSP (*TxtFromTo[Messages->TypeOfMessages]); HTM_INPUT_SEARCH ("FilterFromTo",Usr_MAX_CHARS_FIRSTNAME_OR_SURNAME * 3, Messages->FilterFromTo, "size=\"20\""); diff --git a/swad_profile.c b/swad_profile.c index 69400e4d..2e9823a6 100644 --- a/swad_profile.c +++ b/swad_profile.c @@ -552,7 +552,7 @@ static void Prf_ShowNumFilesCurrentlyPublished (const struct UsrData *UsrDat) Prf_BeginListItem (Txt_Files_uploaded,"file.svg"); HTM_TxtF ("%u %s",NumFiles,(NumFiles == 1) ? Txt_file : - Txt_files); + Txt_files); HTM_NBSP (); HTM_Txt ("("); HTM_TxtF ("%u %s",NumPublicFiles,Txt_public_FILES); diff --git a/swad_search.c b/swad_search.c index db22c281..126c3d0a 100644 --- a/swad_search.c +++ b/swad_search.c @@ -114,22 +114,22 @@ static void Sch_PutFormToSearchWithWhatToSearchAndScope (Act_Action_t Action,Hie extern const char *Txt_documents_in_my_courses; extern const char *Txt_open_documents; extern const char *Txt_Search; - const char *Titles[Sch_NUM_WHAT_TO_SEARCH] = + static const char **Titles[Sch_NUM_WHAT_TO_SEARCH] = { - [Sch_SEARCH_UNKNOWN ] = "", - [Sch_SEARCH_ALL ] = Txt_all, - [Sch_SEARCH_COUNTRIES ] = Txt_countries, - [Sch_SEARCH_INSTITS ] = Txt_institutions, - [Sch_SEARCH_CENTERS ] = Txt_centers, - [Sch_SEARCH_DEGREES ] = Txt_degrees, - [Sch_SEARCH_COURSES ] = Txt_courses, - [Sch_SEARCH_USERS ] = Txt_users[Usr_SEX_UNKNOWN], - [Sch_SEARCH_TEACHERS ] = Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_UNKNOWN], - [Sch_SEARCH_STUDENTS ] = Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_UNKNOWN], - [Sch_SEARCH_GUESTS ] = Txt_ROLES_PLURAL_abc[Rol_GST][Usr_SEX_UNKNOWN], - [Sch_SEARCH_OPEN_DOCUMENTS ] = Txt_open_documents, - [Sch_SEARCH_DOCUM_IN_MY_COURSES] = Txt_documents_in_my_courses, - [Sch_SEARCH_MY_DOCUMENTS ] = Txt_my_documents, + [Sch_SEARCH_UNKNOWN ] = NULL, + [Sch_SEARCH_ALL ] = &Txt_all, + [Sch_SEARCH_COUNTRIES ] = &Txt_countries, + [Sch_SEARCH_INSTITS ] = &Txt_institutions, + [Sch_SEARCH_CENTERS ] = &Txt_centers, + [Sch_SEARCH_DEGREES ] = &Txt_degrees, + [Sch_SEARCH_COURSES ] = &Txt_courses, + [Sch_SEARCH_USERS ] = &Txt_users[0], + [Sch_SEARCH_TEACHERS ] = &Txt_ROLES_PLURAL_abc[Rol_TCH][0], + [Sch_SEARCH_STUDENTS ] = &Txt_ROLES_PLURAL_abc[Rol_STD][0], + [Sch_SEARCH_GUESTS ] = &Txt_ROLES_PLURAL_abc[Rol_GST][0], + [Sch_SEARCH_OPEN_DOCUMENTS ] = &Txt_open_documents, + [Sch_SEARCH_DOCUM_IN_MY_COURSES] = &Txt_documents_in_my_courses, + [Sch_SEARCH_MY_DOCUMENTS ] = &Txt_my_documents, }; Sch_WhatToSearch_t WhatToSearch; unsigned WTS; @@ -178,7 +178,7 @@ static void Sch_PutFormToSearchWithWhatToSearchAndScope (Act_Action_t Action,Hie WTS = (unsigned) WhatToSearch; HTM_OPTION (HTM_Type_UNSIGNED,&WTS, Gbl.Search.WhatToSearch == WhatToSearch,false, - "%s",Titles[WhatToSearch]); + "%s",*Titles[WhatToSearch]); } HTM_SELECT_End (); HTM_LABEL_End (); diff --git a/swad_timeline_user.c b/swad_timeline_user.c index 73a4cb08..c2bee63c 100644 --- a/swad_timeline_user.c +++ b/swad_timeline_user.c @@ -305,28 +305,28 @@ static void Tml_Usr_PutDisabledIconFavSha (Tml_Usr_FavSha_t FavSha, [Tml_Usr_FAV_UNF_COMM] = Tml_Fav_ICON_FAV, [Tml_Usr_SHA_UNS_NOTE] = Tml_Sha_ICON_SHARE, }; - const char *TitleWithUsrs[Tml_Usr_NUM_FAV_SHA] = + static const char **TitleWithUsrs[Tml_Usr_NUM_FAV_SHA] = { - [Tml_Usr_FAV_UNF_NOTE] = Txt_TIMELINE_Favourited_by_X_USERS, - [Tml_Usr_FAV_UNF_COMM] = Txt_TIMELINE_Favourited_by_X_USERS, - [Tml_Usr_SHA_UNS_NOTE] = Txt_TIMELINE_Shared_by_X_USERS, + [Tml_Usr_FAV_UNF_NOTE] = &Txt_TIMELINE_Favourited_by_X_USERS, + [Tml_Usr_FAV_UNF_COMM] = &Txt_TIMELINE_Favourited_by_X_USERS, + [Tml_Usr_SHA_UNS_NOTE] = &Txt_TIMELINE_Shared_by_X_USERS, }; - const char *TitleWithoutUsrs[Tml_Usr_NUM_FAV_SHA] = + static const char **TitleWithoutUsrs[Tml_Usr_NUM_FAV_SHA] = { - [Tml_Usr_FAV_UNF_NOTE] = Txt_TIMELINE_Not_favourited_by_anyone, - [Tml_Usr_FAV_UNF_COMM] = Txt_TIMELINE_Not_favourited_by_anyone, - [Tml_Usr_SHA_UNS_NOTE] = Txt_TIMELINE_Not_shared_by_anyone, + [Tml_Usr_FAV_UNF_NOTE] = &Txt_TIMELINE_Not_favourited_by_anyone, + [Tml_Usr_FAV_UNF_COMM] = &Txt_TIMELINE_Not_favourited_by_anyone, + [Tml_Usr_SHA_UNS_NOTE] = &Txt_TIMELINE_Not_shared_by_anyone, }; /***** Disabled icon to fav/share *****/ if (NumUsrs) { Ico_PutDivIcon ("TL_ICO_DISABLED",Icon[FavSha], - Str_BuildStringLong (TitleWithUsrs[FavSha],(long) NumUsrs)); + Str_BuildStringLong (*TitleWithUsrs[FavSha],(long) NumUsrs)); Str_FreeString (); } else - Ico_PutDivIcon ("TL_ICO_DISABLED",Icon[FavSha],TitleWithoutUsrs[FavSha]); + Ico_PutDivIcon ("TL_ICO_DISABLED",Icon[FavSha],*TitleWithoutUsrs[FavSha]); } /*****************************************************************************/ diff --git a/swad_user.c b/swad_user.c index 875da454..3f1b78c9 100644 --- a/swad_user.c +++ b/swad_user.c @@ -5556,16 +5556,16 @@ static void Usr_PutOptionsListUsrs (const bool ICanChooseOption[Usr_LIST_USRS_NU extern const char *Txt_Follow; extern const char *Txt_Unfollow; extern const char *Txt_Continue; - const char *Label[Usr_LIST_USRS_NUM_OPTIONS] = + static const char **Label[Usr_LIST_USRS_NUM_OPTIONS] = { [Usr_OPTION_UNKNOWN ] = NULL, - [Usr_OPTION_RECORDS ] = Txt_View_records, - [Usr_OPTION_HOMEWORK ] = Txt_View_homework, - [Usr_OPTION_ATTENDANCE] = Txt_View_attendance, - [Usr_OPTION_MESSAGE ] = Txt_Send_message, - [Usr_OPTION_EMAIL ] = Txt_Create_email_message, - [Usr_OPTION_FOLLOW ] = Txt_Follow, - [Usr_OPTION_UNFOLLOW ] = Txt_Unfollow, + [Usr_OPTION_RECORDS ] = &Txt_View_records, + [Usr_OPTION_HOMEWORK ] = &Txt_View_homework, + [Usr_OPTION_ATTENDANCE] = &Txt_View_attendance, + [Usr_OPTION_MESSAGE ] = &Txt_Send_message, + [Usr_OPTION_EMAIL ] = &Txt_Create_email_message, + [Usr_OPTION_FOLLOW ] = &Txt_Follow, + [Usr_OPTION_UNFOLLOW ] = &Txt_Unfollow, }; Usr_ListUsrsOption_t Opt; @@ -5581,7 +5581,7 @@ static void Usr_PutOptionsListUsrs (const bool ICanChooseOption[Usr_LIST_USRS_NU Opt <= (Usr_ListUsrsOption_t) (Usr_LIST_USRS_NUM_OPTIONS - 1); Opt++) if (ICanChooseOption[Opt]) - Usr_ShowOneListUsrsOption (Opt,Label[Opt]); + Usr_ShowOneListUsrsOption (Opt,*Label[Opt]); /* End list of options */ HTM_UL_End ();