From 65718d4e7b30197887b0c3ce21bc8b153bb1841f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Thu, 3 Sep 2015 00:59:03 +0200 Subject: [PATCH] Version 14.125 --- css/swad_desktop.css | 4 + css/swad_mobile.css | 4 + swad_announcement.c | 4 +- swad_assignment.c | 33 ++++---- swad_attendance.c | 182 +++++++++++++++++-------------------------- swad_changelog.h | 3 +- swad_connected.c | 39 +++++----- swad_degree.c | 10 +-- swad_file_browser.c | 47 ++++++----- swad_forum.c | 3 +- swad_global.h | 2 +- swad_indicator.c | 77 ++++++++---------- swad_record.c | 2 +- swad_survey.c | 4 +- swad_syllabus.c | 10 +-- swad_test.c | 6 +- swad_test_import.c | 4 +- swad_user.c | 6 +- 18 files changed, 194 insertions(+), 246 deletions(-) diff --git a/css/swad_desktop.css b/css/swad_desktop.css index 5212a23eb..cad869db1 100644 --- a/css/swad_desktop.css +++ b/css/swad_desktop.css @@ -836,6 +836,10 @@ a:hover img.CENTRE_PHOTO_SHOW .RIGHT_MIDDLE {text-align:right; vertical-align:middle;} .RIGHT_BOTTOM {text-align:right; vertical-align:bottom;} +/************************** Lists with alternating colors ********************/ +.COLOR0 {background-color:#F4F2EA;} +.COLOR1 {background-color:#FBFAF7;} + /********************************* Course info *******************************/ #crs_info { diff --git a/css/swad_mobile.css b/css/swad_mobile.css index 8189e5c2c..548716af2 100644 --- a/css/swad_mobile.css +++ b/css/swad_mobile.css @@ -645,6 +645,10 @@ a:hover img.CENTRE_PHOTO_SHOW .RIGHT_MIDDLE {text-align:right; vertical-align:middle;} .RIGHT_BOTTOM {text-align:right; vertical-align:bottom;} +/************************** Lists with alternating colors ********************/ +.COLOR0 {background-color:#F4F2EA;} +.COLOR1 {background-color:#FBFAF7;} + /********************************* Course info *******************************/ #crs_info { diff --git a/swad_announcement.c b/swad_announcement.c index 9cd4cfceb..2a66d40ac 100644 --- a/swad_announcement.c +++ b/swad_announcement.c @@ -163,7 +163,7 @@ void Ann_ShowMyAnnouncementsNotMarkedAsSeen (void) /***** Show the announcements *****/ if (NumAnnouncements) { - fprintf (Gbl.F.Out,"
"); + fprintf (Gbl.F.Out,"
"); for (NumAnn = 0; NumAnn < NumAnnouncements; @@ -220,7 +220,7 @@ static void Ann_ShowAnnouncement (long AnnCod,const char *Subject,const char *Co Content); /***** Write form *****/ - fprintf (Gbl.F.Out,"
"); + fprintf (Gbl.F.Out,"
"); if (ShowAllAnnouncements) { diff --git a/swad_assignment.c b/swad_assignment.c index 1d75cc0f9..1f7979238 100644 --- a/swad_assignment.c +++ b/swad_assignment.c @@ -239,8 +239,7 @@ static void Asg_ShowOneAssignment (long AsgCod) /***** Write first row of data of this assignment *****/ /* Start date/time */ fprintf (Gbl.F.Out,"" - "" + "" "%02u/%02u/%02u
" "%02u:%02u h" "", @@ -248,7 +247,7 @@ static void Asg_ShowOneAssignment (long AsgCod) "DATE_RED_LIGHT") : (Asg.Open ? "DATE_GREEN" : "DATE_RED"), - Gbl.ColorRows[Gbl.RowEvenOdd], + Gbl.RowEvenOdd, Asg.DateTimes[Asg_START_TIME].Date.Day, Asg.DateTimes[Asg_START_TIME].Date.Month, Asg.DateTimes[Asg_START_TIME].Date.Year % 100, @@ -256,8 +255,7 @@ static void Asg_ShowOneAssignment (long AsgCod) Asg.DateTimes[Asg_START_TIME].Time.Minute); /* End date/time */ - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" "%02u/%02u/%02u
" "%02u:%02u h" "", @@ -265,7 +263,7 @@ static void Asg_ShowOneAssignment (long AsgCod) "DATE_RED_LIGHT") : (Asg.Open ? "DATE_GREEN" : "DATE_RED"), - Gbl.ColorRows[Gbl.RowEvenOdd], + Gbl.RowEvenOdd, Asg.DateTimes[Asg_END_TIME].Date.Day, Asg.DateTimes[Asg_END_TIME].Date.Month, Asg.DateTimes[Asg_END_TIME].Date.Year % 100, @@ -273,24 +271,23 @@ static void Asg_ShowOneAssignment (long AsgCod) Asg.DateTimes[Asg_END_TIME].Time.Minute); /* Assignment title */ - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" "
%s
", - Gbl.ColorRows[Gbl.RowEvenOdd], + Gbl.RowEvenOdd, Asg.Hidden ? "ASG_TITLE_LIGHT" : "ASG_TITLE", Asg.Title); fprintf (Gbl.F.Out,""); /* Send work? */ - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" "\"%s\"" "
%s" "", (Asg.SendWork == Asg_SEND_WORK) ? "DAT_N" : "DAT", - Gbl.ColorRows[Gbl.RowEvenOdd], + Gbl.RowEvenOdd, Gbl.Prefs.IconsURL, (Asg.SendWork == Asg_SEND_WORK) ? "file_on" : "file_off", @@ -300,18 +297,16 @@ static void Asg_ShowOneAssignment (long AsgCod) Txt_No); /* Assignment folder */ - fprintf (Gbl.F.Out,"", - Gbl.ColorRows[Gbl.RowEvenOdd]); + fprintf (Gbl.F.Out,"", + Gbl.RowEvenOdd); Asg_WriteAssignmentFolder (&Asg); fprintf (Gbl.F.Out,"" ""); /***** Write second row of data of this assignment *****/ fprintf (Gbl.F.Out,"" - "", - Gbl.ColorRows[Gbl.RowEvenOdd]); + "", + Gbl.RowEvenOdd); /* Author of the assignment */ Asg_WriteAsgAuthor (&Asg); @@ -333,8 +328,8 @@ static void Asg_ShowOneAssignment (long AsgCod) Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML, Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to recpectful HTML Str_InsertLinkInURLs (Txt,Cns_MAX_BYTES_TEXT,60); // Insert links - fprintf (Gbl.F.Out,"", - Gbl.ColorRows[Gbl.RowEvenOdd]); + fprintf (Gbl.F.Out,"", + Gbl.RowEvenOdd); if (Gbl.CurrentCrs.Grps.NumGrps) Asg_GetAndWriteNamesOfGrpsAssociatedToAsg (&Asg); diff --git a/swad_attendance.c b/swad_attendance.c index 3654c61bc..d3962bb10 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -266,15 +266,14 @@ static void Att_ShowOneAttEvent (struct AttendanceEvent *Att,bool ShowOnlyThisAt /***** Start date/time *****/ fprintf (Gbl.F.Out,"" \ - "Hidden ? (Att->Open ? "DATE_GREEN_LIGHT" : "DATE_RED_LIGHT") : (Att->Open ? "DATE_GREEN" : "DATE_RED")); if (!ShowOnlyThisAttEventComplete) - fprintf (Gbl.F.Out," style=\"background-color:%s;\"", - Gbl.ColorRows[Gbl.RowEvenOdd]); - fprintf (Gbl.F.Out,">" + fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"\">" "%02u/%02u/%02u
" "%02u:%02u h" "", @@ -285,15 +284,14 @@ static void Att_ShowOneAttEvent (struct AttendanceEvent *Att,bool ShowOnlyThisAt Att->DateTimes[Att_START_TIME].Time.Minute); /***** End date/time *****/ - fprintf (Gbl.F.Out,"Hidden ? (Att->Open ? "DATE_GREEN_LIGHT" : "DATE_RED_LIGHT") : (Att->Open ? "DATE_GREEN" : "DATE_RED")); if (!ShowOnlyThisAttEventComplete) - fprintf (Gbl.F.Out," style=\"background-color:%s;\"", - Gbl.ColorRows[Gbl.RowEvenOdd]); - fprintf (Gbl.F.Out,">" + fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"\">" "%02u/%02u/%02u
" "%02u:%02u h" "", @@ -304,11 +302,10 @@ static void Att_ShowOneAttEvent (struct AttendanceEvent *Att,bool ShowOnlyThisAt Att->DateTimes[Att_END_TIME ].Time.Minute); /***** Attendance event title *****/ - fprintf (Gbl.F.Out,""); + fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"\">"); /* Put form to view attendance event */ Act_FormStart (ActSeeOneAtt); @@ -321,11 +318,10 @@ static void Att_ShowOneAttEvent (struct AttendanceEvent *Att,bool ShowOnlyThisAt fprintf (Gbl.F.Out,""); /***** Number of students in this event *****/ - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"\">" "%u" "" "", @@ -333,9 +329,8 @@ static void Att_ShowOneAttEvent (struct AttendanceEvent *Att,bool ShowOnlyThisAt /***** Write second row of data of this attendance event *****/ fprintf (Gbl.F.Out,"" - "", - Gbl.ColorRows[Gbl.RowEvenOdd]); + "", + Gbl.RowEvenOdd); /* Author of the attendance event */ Att_WriteAttEventAuthor (Att); @@ -357,9 +352,8 @@ static void Att_ShowOneAttEvent (struct AttendanceEvent *Att,bool ShowOnlyThisAt Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML, Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to recpectful HTML Str_InsertLinkInURLs (Txt,Cns_MAX_BYTES_TEXT,60); // Insert links - fprintf (Gbl.F.Out,"", - Gbl.ColorRows[Gbl.RowEvenOdd]); + fprintf (Gbl.F.Out,"", + Gbl.RowEvenOdd); if (Gbl.CurrentCrs.Grps.NumGrps) Att_GetAndWriteNamesOfGrpsAssociatedToAttEvent (Att); @@ -2018,20 +2012,17 @@ static void Att_WriteRowStdToCallTheRoll (unsigned NumStd,struct UsrData *UsrDat extern const char *Txt_Present; extern const char *Txt_Absent; bool Present; - const char *BgColor; char PhotoURL[PATH_MAX+1]; bool ShowPhoto; char CommentStd[Cns_MAX_BYTES_TEXT+1]; char CommentTch[Cns_MAX_BYTES_TEXT+1]; - BgColor = Gbl.ColorRows[Gbl.RowEvenOdd]; - /***** Check if this student is already registered in the current event *****/ Present = Att_CheckIfUsrIsPresentInAttEventAndGetComments (Att->AttCod,UsrDat->UsrCod,CommentStd,CommentTch); /***** Icon to show if the user is already registered *****/ fprintf (Gbl.F.Out,"" - "" "\"%s\"" @@ -2045,10 +2036,10 @@ static void Att_WriteRowStdToCallTheRoll (unsigned NumStd,struct UsrData *UsrDat Txt_Absent); /***** Checkbox to select user *****/ - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" "EncryptedUsrCod); + Gbl.RowEvenOdd, + UsrDat->EncryptedUsrCod); if (Present) // This student has attended to the event? fprintf (Gbl.F.Out," checked=\"checked\""); if (Gbl.Usrs.Me.LoggedRole == Rol_STUDENT) // A student can not change his attendance @@ -2057,21 +2048,19 @@ static void Att_WriteRowStdToCallTheRoll (unsigned NumStd,struct UsrData *UsrDat ""); /***** Write number of student in the list *****/ - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" "%u" "", UsrDat->Accepted ? "DAT_SMALL_N" : "DAT_SMALL", - BgColor, + Gbl.RowEvenOdd, NumStd); /***** Show student's photo *****/ if (Gbl.Usrs.Listing.WithPhotos) { - fprintf (Gbl.F.Out,"", - BgColor); + fprintf (Gbl.F.Out,"", + Gbl.RowEvenOdd); ShowPhoto = Pho_ShowUsrPhotoIsAllowed (UsrDat,PhotoURL); Pho_ShowUsrPhoto (UsrDat,ShowPhoto ? PhotoURL : NULL, @@ -2080,20 +2069,18 @@ static void Att_WriteRowStdToCallTheRoll (unsigned NumStd,struct UsrData *UsrDat } /***** Write user's ID ******/ - fprintf (Gbl.F.Out,"", + fprintf (Gbl.F.Out,"", UsrDat->Accepted ? "DAT_SMALL_N" : "DAT_SMALL", - BgColor); + Gbl.RowEvenOdd); ID_WriteUsrIDs (UsrDat,true); fprintf (Gbl.F.Out,""); /***** Write student's name *****/ - fprintf (Gbl.F.Out,"%s", + fprintf (Gbl.F.Out,"%s", UsrDat->Accepted ? "DAT_SMALL_N" : "DAT_SMALL", - BgColor, + Gbl.RowEvenOdd, UsrDat->Surname1); if (UsrDat->Surname2[0]) fprintf (Gbl.F.Out," %s",UsrDat->Surname2); @@ -2101,9 +2088,8 @@ static void Att_WriteRowStdToCallTheRoll (unsigned NumStd,struct UsrData *UsrDat UsrDat->FirstName); /***** Student's comment: write form or text */ - fprintf (Gbl.F.Out,"", - BgColor); + fprintf (Gbl.F.Out,"", + Gbl.RowEvenOdd); if (Gbl.Usrs.Me.LoggedRole == Rol_STUDENT && Att->Open) // Show with form fprintf (Gbl.F.Out,"", UsrDat->UsrCod,CommentStd); @@ -2116,9 +2102,8 @@ static void Att_WriteRowStdToCallTheRoll (unsigned NumStd,struct UsrData *UsrDat fprintf (Gbl.F.Out,""); /***** Teacher's comment: write form, text or nothing */ - fprintf (Gbl.F.Out,"", - BgColor); + fprintf (Gbl.F.Out,"", + Gbl.RowEvenOdd); if (Gbl.Usrs.Me.LoggedRole == Rol_TEACHER) // Show with form fprintf (Gbl.F.Out,"", UsrDat->UsrCod,CommentTch); @@ -2934,7 +2919,6 @@ static void Att_ListEventsToSelect (void) extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; extern const char *Txt_Update_attendance_according_to_selected_events; extern const char *Txt_Update_attendance; - const char *BgColor; unsigned NumAttEvent; /***** Start form to update the attendance @@ -2966,46 +2950,40 @@ static void Att_ListEventsToSelect (void) NumAttEvent < Gbl.AttEvents.Num; NumAttEvent++) { - BgColor = Gbl.ColorRows[Gbl.RowEvenOdd]; - /* Get data of the attendance event from database */ Att_GetDataOfAttEventByCodAndCheckCrs (&Gbl.AttEvents.Lst[NumAttEvent]); Att_GetNumStdsTotalWhoAreInAttEvent (&Gbl.AttEvents.Lst[NumAttEvent]); /* Write a row for this event */ fprintf (Gbl.F.Out,"" - "" + "" "" "" - "" + "" "%u:" "" - "" + "" "%02u/%02u/%04u %02u:%02u h %s" "" - "" + "" "%u" "" "", - BgColor, + Gbl.RowEvenOdd, NumAttEvent + 1, - BgColor, + Gbl.RowEvenOdd, Gbl.AttEvents.Lst[NumAttEvent].DateTimes[Att_START_TIME].Date.Day, Gbl.AttEvents.Lst[NumAttEvent].DateTimes[Att_START_TIME].Date.Month, Gbl.AttEvents.Lst[NumAttEvent].DateTimes[Att_START_TIME].Date.Year, Gbl.AttEvents.Lst[NumAttEvent].DateTimes[Att_START_TIME].Time.Hour, Gbl.AttEvents.Lst[NumAttEvent].DateTimes[Att_START_TIME].Time.Minute, Gbl.AttEvents.Lst[NumAttEvent].Title, - BgColor, + Gbl.RowEvenOdd, Gbl.AttEvents.Lst[NumAttEvent].NumStdsTotal); Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd; @@ -3162,32 +3140,28 @@ static void Att_WriteRowStdSeveralAttEvents (unsigned NumStd,struct UsrData *Usr { extern const char *Txt_Present; extern const char *Txt_Absent; - const char *BgColor; char PhotoURL[PATH_MAX+1]; bool ShowPhoto; unsigned NumAttEvent; bool Present; unsigned NumTimesPresent; - BgColor = Gbl.ColorRows[Gbl.RowEvenOdd]; - /***** Write number of student in the list *****/ fprintf (Gbl.F.Out,"" - "" + "" "%u" "", UsrDat->Accepted ? "DAT_SMALL_N" : "DAT_SMALL", - BgColor, + Gbl.RowEvenOdd, NumStd + 1); /***** Show student's photo *****/ if (Gbl.Usrs.Listing.WithPhotos) { - fprintf (Gbl.F.Out,"", - BgColor); + fprintf (Gbl.F.Out,"", + Gbl.RowEvenOdd); ShowPhoto = Pho_ShowUsrPhotoIsAllowed (UsrDat,PhotoURL); Pho_ShowUsrPhoto (UsrDat,ShowPhoto ? PhotoURL : NULL, @@ -3196,21 +3170,19 @@ static void Att_WriteRowStdSeveralAttEvents (unsigned NumStd,struct UsrData *Usr } /***** Write user's ID ******/ - fprintf (Gbl.F.Out,"", + fprintf (Gbl.F.Out,"", UsrDat->Accepted ? "DAT_SMALL_N" : "DAT_SMALL", - BgColor); + Gbl.RowEvenOdd); ID_WriteUsrIDs (UsrDat,true); fprintf (Gbl.F.Out,""); /***** Write student's name *****/ - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" "%s", UsrDat->Accepted ? "DAT_SMALL_N" : "DAT_SMALL", - BgColor, + Gbl.RowEvenOdd, UsrDat->Surname1); if (UsrDat->Surname2[0]) fprintf (Gbl.F.Out," %s",UsrDat->Surname2); @@ -3227,7 +3199,7 @@ static void Att_WriteRowStdSeveralAttEvents (unsigned NumStd,struct UsrData *Usr // Here it is not necessary to get comments Present = Att_CheckIfUsrIsPresentInAttEvent (Gbl.AttEvents.Lst[NumAttEvent].AttCod,UsrDat->UsrCod); - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" "\"%s\"" "", @@ -3245,12 +3217,11 @@ static void Att_WriteRowStdSeveralAttEvents (unsigned NumStd,struct UsrData *Usr } /***** Last column with the number of times this user is present *****/ - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" "%u" "" "", - BgColor, + Gbl.RowEvenOdd, NumTimesPresent); Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd; @@ -3302,7 +3273,6 @@ static void Att_ListAttEventsForAStd (unsigned NumStd,struct UsrData *UsrDat) extern const char *Txt_Absent; extern const char *Txt_Student_comment; extern const char *Txt_Teachers_comment; - const char *BgColor; char PhotoURL[PATH_MAX+1]; bool ShowPhoto; unsigned NumAttEvent; @@ -3310,23 +3280,20 @@ static void Att_ListAttEventsForAStd (unsigned NumStd,struct UsrData *UsrDat) char CommentStd[Cns_MAX_BYTES_TEXT+1]; char CommentTch[Cns_MAX_BYTES_TEXT+1]; - BgColor = Gbl.ColorRows[Gbl.RowEvenOdd]; - /***** Write number of student in the list *****/ fprintf (Gbl.F.Out,"" - "" + "" "%u:" "", UsrDat->Accepted ? "DAT_SMALL_N" : "DAT_SMALL", - BgColor, + Gbl.RowEvenOdd, NumStd + 1); /***** Show student's photo *****/ - fprintf (Gbl.F.Out,"", - BgColor); + fprintf (Gbl.F.Out,"", + Gbl.RowEvenOdd); ShowPhoto = Pho_ShowUsrPhotoIsAllowed (UsrDat,PhotoURL); Pho_ShowUsrPhoto (UsrDat,ShowPhoto ? PhotoURL : NULL, @@ -3334,12 +3301,11 @@ static void Att_ListAttEventsForAStd (unsigned NumStd,struct UsrData *UsrDat) fprintf (Gbl.F.Out,""); /***** Write user's ID ******/ - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" "" "" "" - "" - "" + "" - "" "", - BgColor, - BgColor, + Gbl.RowEvenOdd, + Gbl.RowEvenOdd, NumAttEvent + 1, - BgColor, + Gbl.RowEvenOdd, Gbl.Prefs.IconsURL, Present ? "check" : "check-empty", @@ -3408,14 +3372,13 @@ static void Att_ListAttEventsForAStd (unsigned NumStd,struct UsrData *UsrDat) CommentTch[0]) { fprintf (Gbl.F.Out,"" - "" - "" - "" + "" + "" - ""); /***** Write full name and link *****/ - fprintf (Gbl.F.Out,""); /***** Write time from last access *****/ - fprintf (Gbl.F.Out,"" - ""); /***** Write full name and link *****/ - fprintf (Gbl.F.Out,""); /***** Write time from last access *****/ - fprintf (Gbl.F.Out,"" - "", - Gbl.ColorRows[Gbl.RowEvenOdd],Gbl.Prefs.IconsURL, + Gbl.RowEvenOdd,Gbl.Prefs.IconsURL, NumRow == NumRows ? "subend" : "submid"); /***** Write degree *****/ fprintf (Gbl.F.Out,"
", - BgColor, + Gbl.RowEvenOdd, UsrDat->Accepted ? "DAT_SMALL_N" : "DAT_SMALL"); ID_WriteUsrIDs (UsrDat,true); @@ -3374,21 +3340,19 @@ static void Att_ListAttEventsForAStd (unsigned NumStd,struct UsrData *UsrDat) /***** Write a row for this event *****/ fprintf (Gbl.F.Out,"
" + "" "%u:" "" + "" "\"%s\"" " %02u/%02u/%04u %02u:%02u h %s
" + "" "
", - BgColor, - BgColor, - BgColor); + Gbl.RowEvenOdd, + Gbl.RowEvenOdd, + Gbl.RowEvenOdd); if (CommentStd[0]) { Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML, @@ -3428,7 +3391,8 @@ static void Att_ListAttEventsForAStd (unsigned NumStd,struct UsrData *UsrDat) { Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML, CommentTch,Cns_MAX_BYTES_TEXT,false); - fprintf (Gbl.F.Out,"
%s:
%s
", + fprintf (Gbl.F.Out,"
%s:
" + "
%s
", Txt_Teachers_comment, CommentTch); } diff --git a/swad_changelog.h b/swad_changelog.h index 561814785..9ec0c012f 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -103,11 +103,12 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 14.124.10 (2015/09/02)" +#define Log_PLATFORM_VERSION "SWAD 14.125 (2015/09/03)" // 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 sql/swad*.sql | tail -1 /* + Version 14.125: Sep 03, 2015 Changes in styles. (? lines) Version 14.124.10:Sep 02, 2015 Changes in styles. (184571 lines) Version 14.124.9: Sep 02, 2015 Changes in styles. (184584 lines) Version 14.124.8: Sep 02, 2015 Changes in styles. (184635 lines) diff --git a/swad_connected.c b/swad_connected.c index e97c975b2..e236557df 100644 --- a/swad_connected.c +++ b/swad_connected.c @@ -983,7 +983,6 @@ static void Con_ShowConnectedUsrsCurrentCrsOneByOneOnRightColumn (Rol_Role_t Rol static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role) { extern const char *Txt_View_record_for_this_course; - const char *Color = Gbl.ColorRows[Gbl.RowEvenOdd]; bool ShowPhoto; char PhotoURL[PATH_MAX+1]; const char *Font = (Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].ThisCrs ? "CON_CRS" : @@ -1002,9 +1001,9 @@ static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role) /***** Show photo *****/ fprintf (Gbl.F.Out,"
", - Color); + "", + Gbl.RowEvenOdd); sprintf (Gbl.FormId,"form_con_%d",++Gbl.NumFormConnectedUsrs); Act_FormStartId (ActSeePubPrf,Gbl.FormId); Usr_PutParamUsrCodEncrypted (UsrDat.EncryptedUsrCod); @@ -1018,12 +1017,12 @@ static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role) fprintf (Gbl.F.Out,"", - Font,Color); + fprintf (Gbl.F.Out,"", + Font,Gbl.RowEvenOdd); sprintf (Gbl.FormId,"form_con_%d",++Gbl.NumFormConnectedUsrs); Act_FormStartId ((Role == Rol_STUDENT) ? ActSeeRecOneStd : - ActSeeRecOneTch, + ActSeeRecOneTch, Gbl.FormId); Usr_PutParamUsrCodEncrypted (UsrDat.EncryptedUsrCod); Act_LinkFormSubmitId (Txt_View_record_for_this_course,Font,Gbl.FormId); @@ -1033,9 +1032,9 @@ static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role) fprintf (Gbl.F.Out,"", - Font,Color); + fprintf (Gbl.F.Out,"", + Font,Gbl.RowEvenOdd); fprintf (Gbl.F.Out,"
", Gbl.Usrs.Connected.NumUsr); // Used for automatic update, only when displayed on right column @@ -1199,9 +1198,9 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R /***** Show photo *****/ fprintf (Gbl.F.Out,"
", - Gbl.ColorRows[Gbl.RowEvenOdd]); + "", + Gbl.RowEvenOdd); ShowPhoto = Pho_ShowUsrPhotoIsAllowed (&UsrDat,PhotoURL); Pho_ShowUsrPhoto (&UsrDat,ShowPhoto ? PhotoURL : NULL, @@ -1209,9 +1208,9 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R fprintf (Gbl.F.Out,"", - Font,Gbl.ColorRows[Gbl.RowEvenOdd]); + fprintf (Gbl.F.Out,"", + Font,Gbl.RowEvenOdd); if (PutLinkToRecord) { Act_FormStart ((Role == Rol_STUDENT) ? ActSeeRecOneStd : @@ -1228,9 +1227,9 @@ static void Con_ShowConnectedUsrsCurrentLocationOneByOneOnMainZone (Rol_Role_t R fprintf (Gbl.F.Out,"", - Font,Gbl.ColorRows[Gbl.RowEvenOdd]); + fprintf (Gbl.F.Out,"", + Font,Gbl.RowEvenOdd); Hours = Seconds / (60 * 60); Minutes = (Seconds / 60) % 60; Seconds %= 60; diff --git a/swad_degree.c b/swad_degree.c index 067158345..d21b9754e 100644 --- a/swad_degree.c +++ b/swad_degree.c @@ -3934,22 +3934,20 @@ void Deg_GetAndWriteDegreesAdminBy (long UsrCod,unsigned ColSpan) { /***** Indent *****/ fprintf (Gbl.F.Out,"
" + "" "\"\"" "", - ColSpan - 1,Gbl.ColorRows[Gbl.RowEvenOdd]); + " class=\"DAT_SMALL_NOBR LEFT_TOP COLOR%u\">", + ColSpan - 1,Gbl.RowEvenOdd); /* Get next degree */ row = mysql_fetch_row (mysql_res); diff --git a/swad_file_browser.c b/swad_file_browser.c index 370abc7ae..3f4ea7523 100644 --- a/swad_file_browser.c +++ b/swad_file_browser.c @@ -4812,11 +4812,11 @@ static bool Brw_WriteRowFileBrowser (unsigned Level, /***** Indentation depending on level, icon, and file/folder name *****/ /* Start of the column */ - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" "" "", - Gbl.ColorRows[Gbl.RowEvenOdd]); + Gbl.RowEvenOdd); /* Indent depending on level */ if (Level) @@ -4842,7 +4842,7 @@ static bool Brw_WriteRowFileBrowser (unsigned Level, else { /* Icon with file type or link */ - fprintf (Gbl.F.Out,""); } @@ -4865,7 +4865,7 @@ static bool Brw_WriteRowFileBrowser (unsigned Level, if (Gbl.Usrs.Me.LoggedRole >= Rol_STUDENT && // Only ZIP folders if I am student, teacher... !SeeMarks) // Do not ZIP folders when seeing marks { - fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); } /*****************************************************************************/ @@ -4992,7 +4992,7 @@ static void Brw_PutIconRemoveFile (Brw_FileType_t FileType, { extern const char *Txt_Remove_FILE_OR_LINK_X; - fprintf (Gbl.F.Out,"", @@ -5191,7 +5191,7 @@ static void Brw_IndentAndWriteIconExpandContract (unsigned Level,Brw_ExpandTree_ "
",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); Brw_PutIconFileWithLinkToViewMetadata (16,FileType,PathInTree,FileName,FileNameToShow); fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); if (FileType == Brw_IS_FOLDER && // If it is a folder !(SeeDocsZone && RowSetAsHidden)) // When seeing docs, if folder is not hidden (this could happen for Level == 0) ZIP_PutButtonToDownloadZIPOfAFolder (PathInTree,FileName); @@ -4946,7 +4946,7 @@ static void Brw_PutIconsRemoveCopyPaste (unsigned Level,Brw_FileType_t FileType, Brw_PutIconPasteOff (); } else // File or link. Can't paste in a file or link. - fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); if (Gbl.FileBrowser.ICanRemoveFileOrFolder) // Can I remove this file? { @@ -5036,7 +5036,7 @@ static void Brw_PutIconRemoveDir (const char *PathInTree,const char *FileName,co { extern const char *Txt_Remove_folder_X; - fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); if (Gbl.FileBrowser.ICanRemoveFileOrFolder) // Can I remove this folder? { @@ -5082,7 +5082,7 @@ static void Brw_PutIconCopy (Brw_FileType_t FileType, extern const char *Txt_Copy_FOLDER_FILE_OR_LINK_X; extern const char *Txt_Copy_not_allowed; - fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); if (Gbl.FileBrowser.ICanEditFileOrFolder) { @@ -5130,7 +5130,7 @@ static void Brw_PutIconPasteOn (const char *PathInTree,const char *FileName,cons { extern const char *Txt_Paste_in_X; - fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); /***** Form to paste the content of the clipboard *****/ Act_FormStart (Brw_ActPaste[Gbl.FileBrowser.Type]); @@ -5168,7 +5168,7 @@ static void Brw_PutIconPasteOff (void) { extern const char *Txt_Copy_not_allowed; - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" "\"%s\"" "
" ""); Brw_IndentDependingOnLevel (Level); - fprintf (Gbl.F.Out,"", @@ -5737,9 +5737,8 @@ static void Brw_WriteDatesAssignment (void) extern const char *Txt_unknown_assignment; fprintf (Gbl.F.Out,""); /***** Write the date *****/ - fprintf (Gbl.F.Out,"" "", diff --git a/swad_global.h b/swad_global.h index 537114473..fc63edfa5 100644 --- a/swad_global.h +++ b/swad_global.h @@ -159,7 +159,7 @@ struct Globals struct Date Yesterday; char Message[Lay_MAX_BYTES_ALERT]; // String for alerts char Title[Lay_MAX_BYTES_TITLE]; // String for the help message in a link - int RowEvenOdd; // To alternate row colors in listings + unsigned RowEvenOdd; // To alternate row colors in listings char *ColorRows[2]; const char *XMLPtr; struct diff --git a/swad_indicator.c b/swad_indicator.c index 0afd3ac0f..ef4b95ab7 100644 --- a/swad_indicator.c +++ b/swad_indicator.c @@ -902,131 +902,116 @@ static void Ind_ShowTableOfCoursesWithIndicators (Ind_IndicatorsLayout_t Indicat { case Ind_INDICATORS_BRIEF: fprintf (Gbl.F.Out,"" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" "", Indicators.CourseAllOK ? "DAT_SMALL_GREEN" : (Indicators.CoursePartiallyOK ? "DAT_SMALL" : "DAT_SMALL_RED"), - Gbl.ColorRows[Gbl.RowEvenOdd], + Gbl.RowEvenOdd, row[0], Indicators.CourseAllOK ? "DAT_SMALL_GREEN" : (Indicators.CoursePartiallyOK ? "DAT_SMALL" : "DAT_SMALL_RED"), - Gbl.ColorRows[Gbl.RowEvenOdd], + Gbl.RowEvenOdd, row[1], Indicators.CourseAllOK ? "DAT_SMALL_GREEN" : (Indicators.CoursePartiallyOK ? "DAT_SMALL" : "DAT_SMALL_RED"), - Gbl.ColorRows[Gbl.RowEvenOdd], + Gbl.RowEvenOdd, row[3], - Gbl.ColorRows[Gbl.RowEvenOdd],Cfg_HTTPS_URL_SWAD_CGI,CrsCod,Act_Actions[ActReqStaCrs].ActCod, - Cfg_HTTPS_URL_SWAD_CGI,CrsCod,Act_Actions[ActReqStaCrs].ActCod, + Gbl.RowEvenOdd,Cfg_HTTPS_URL_SWAD_CGI,CrsCod,Act_Actions[ActReqStaCrs].ActCod, + Cfg_HTTPS_URL_SWAD_CGI,CrsCod,Act_Actions[ActReqStaCrs].ActCod, Indicators.CourseAllOK ? "DAT_SMALL_GREEN" : (Indicators.CoursePartiallyOK ? "DAT_SMALL" : "DAT_SMALL_RED"), - Gbl.ColorRows[Gbl.RowEvenOdd], + Gbl.RowEvenOdd, Indicators.CountIndicators, - "DAT_SMALL_GREEN",Gbl.ColorRows[Gbl.RowEvenOdd], + "DAT_SMALL_GREEN",Gbl.RowEvenOdd, Indicators.ThereIsSyllabus ? Txt_YES : "", - "DAT_SMALL_RED",Gbl.ColorRows[Gbl.RowEvenOdd], + "DAT_SMALL_RED",Gbl.RowEvenOdd, Indicators.ThereIsSyllabus ? "" : Txt_NO, - "DAT_SMALL_GREEN",Gbl.ColorRows[Gbl.RowEvenOdd], + "DAT_SMALL_GREEN",Gbl.RowEvenOdd, Indicators.ThereAreAssignments ? Txt_YES : "", - "DAT_SMALL_RED",Gbl.ColorRows[Gbl.RowEvenOdd], + "DAT_SMALL_RED",Gbl.RowEvenOdd, Indicators.ThereAreAssignments ? "" : Txt_NO, - "DAT_SMALL_GREEN",Gbl.ColorRows[Gbl.RowEvenOdd], + "DAT_SMALL_GREEN",Gbl.RowEvenOdd, Indicators.ThereIsOnlineTutoring ? Txt_YES : "", - "DAT_SMALL_RED",Gbl.ColorRows[Gbl.RowEvenOdd], + "DAT_SMALL_RED",Gbl.RowEvenOdd, Indicators.ThereIsOnlineTutoring ? "" : Txt_NO, - "DAT_SMALL_GREEN",Gbl.ColorRows[Gbl.RowEvenOdd], + "DAT_SMALL_GREEN",Gbl.RowEvenOdd, Indicators.ThereAreMaterials ? Txt_YES : "", - "DAT_SMALL_RED",Gbl.ColorRows[Gbl.RowEvenOdd], + "DAT_SMALL_RED",Gbl.RowEvenOdd, Indicators.ThereAreMaterials ? "" : Txt_NO, - "DAT_SMALL_GREEN",Gbl.ColorRows[Gbl.RowEvenOdd], + "DAT_SMALL_GREEN",Gbl.RowEvenOdd, Indicators.ThereIsAssessment ? Txt_YES : "", - "DAT_SMALL_RED",Gbl.ColorRows[Gbl.RowEvenOdd], + "DAT_SMALL_RED",Gbl.RowEvenOdd, Indicators.ThereIsAssessment ? "" : Txt_NO); break; diff --git a/swad_record.c b/swad_record.c index d80e7a538..b09683bcb 100644 --- a/swad_record.c +++ b/swad_record.c @@ -197,7 +197,7 @@ void Rec_ListFieldsRecordsForEdition (void) fprintf (Gbl.F.Out,""); /* Write icon to remove the field */ - fprintf (Gbl.F.Out,""); /* Write icon to edit the question */ - fprintf (Gbl.F.Out,""); /***** Icon to increase the level of an item *****/ - fprintf (Gbl.F.Out,""); /***** Icon to decrease level item *****/ - fprintf (Gbl.F.Out,"" - ""); /* Write icon to edit the question */ - fprintf (Gbl.F.Out,"" - "" - "
",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); switch (ExpandTree) { @@ -5295,7 +5295,7 @@ static void Brw_PutIconShow (unsigned Level,Brw_FileType_t FileType, { extern const char *Txt_Show_FOLDER_FILE_OR_LINK_X; - fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); Act_FormStart (Brw_ActShow[Gbl.FileBrowser.Type]); switch (Gbl.FileBrowser.Type) { @@ -5328,7 +5328,7 @@ static void Brw_PutIconHide (unsigned Level,Brw_FileType_t FileType, { extern const char *Txt_Hide_FOLDER_FILE_OR_LINK_X; - fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); Act_FormStart (Brw_ActHide[Gbl.FileBrowser.Type]); switch (Gbl.FileBrowser.Type) { @@ -5439,7 +5439,7 @@ static void Brw_PutIconNewFileOrFolder (void) extern const char *Txt_New_FILE_OR_FOLDER; /***** Icon that indicates new file *****/ - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" "\"%s\"" "", - Gbl.ColorRows[Gbl.RowEvenOdd]); + " class=\"ASG_LST_DATE_GREEN RIGHT_MIDDLE COLOR%u\">", + Gbl.RowEvenOdd); if (Gbl.FileBrowser.Asg.AsgCod > 0) { @@ -5796,19 +5795,17 @@ static void Brw_WriteDatesAssignment (void) static void Brw_WriteFileSizeAndDate (Brw_FileType_t FileType,struct FileMetadata *FileMetadata) { /***** Write the file size *****/ - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" " ", - Gbl.FileBrowser.TxtStyle,Gbl.ColorRows[Gbl.RowEvenOdd]); + Gbl.FileBrowser.TxtStyle,Gbl.RowEvenOdd); if (FileType == Brw_IS_FILE) Str_WriteSizeInBytesBrief ((double) FileMetadata->Size); fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" " ", - Gbl.FileBrowser.TxtStyle,Gbl.ColorRows[Gbl.RowEvenOdd]); + Gbl.FileBrowser.TxtStyle,Gbl.RowEvenOdd); if (FileType == Brw_IS_FILE || FileType == Brw_IS_LINK) { @@ -5840,7 +5837,7 @@ static void Brw_WriteFileOrFolderPublisher (unsigned Level,unsigned long UsrCod) ShowUsr = Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat); // Get user's data from database } - fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); if (ShowUsr) { /***** Show photo *****/ diff --git a/swad_forum.c b/swad_forum.c index 03ed44a58..077ec40c2 100644 --- a/swad_forum.c +++ b/swad_forum.c @@ -3401,7 +3401,8 @@ void For_ListForumThrs (long ThrCods[Pag_ITEMS_PER_PAGE],struct Pagination *Pagi Thr.NumWriters); /***** Write number of users who have read this thread *****/ - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" "%u " "
" + "" "%s" "" + "" "%s" "" + "" "%s" "" + "" "" "%s/?crs=%ld&act=%ld" "" "" + "" "%u" "" + "" "%s" "" + "" "%s" "" + "" "%s" "" + "" "%s" "" + "" "%s" "" + "" "%s" "" + "" "%s" "" + "" "%s" "" + "" "%s" "" + "" "%s" "
",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); Act_FormStart (ActReqRemFie); Par_PutHiddenParamLong ("FieldCod",Gbl.CurrentCrs.Records.LstFields.Lst[NumField].FieldCod); Lay_PutIconRemove (); diff --git a/swad_survey.c b/swad_survey.c index c5d0a70ed..d7652de8f 100644 --- a/swad_survey.c +++ b/swad_survey.c @@ -2987,7 +2987,7 @@ static void Svy_ListSvyQuestions (struct Survey *Svy,struct SurveyQuestion *SvyQ if (Svy->Status.ICanEdit) { /* Write icon to remove the question */ - fprintf (Gbl.F.Out,"", + fprintf (Gbl.F.Out,"", Gbl.RowEvenOdd); Act_FormStart (ActRemSvyQst); Svy_PutParamSvyCod (Svy->SvyCod); @@ -2999,7 +2999,7 @@ static void Svy_ListSvyQuestions (struct Survey *Svy,struct SurveyQuestion *SvyQ fprintf (Gbl.F.Out,"", + fprintf (Gbl.F.Out,"", Gbl.RowEvenOdd); Act_FormStart (ActEdiOneSvyQst); Svy_PutParamSvyCod (Svy->SvyCod); diff --git a/swad_syllabus.c b/swad_syllabus.c index 64ac1ec58..a6867c95d 100644 --- a/swad_syllabus.c +++ b/swad_syllabus.c @@ -553,7 +553,7 @@ static void Syl_ShowRowSyllabus (Inf_InfoType_t InfoType,unsigned NumItem,int Le else { /***** Icon to remove the row *****/ - fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); if (LstItemsSyllabus.Lst[NumItem].HasChildren) Lay_PutIconRemovalNotAllowed (); else @@ -568,7 +568,7 @@ static void Syl_ShowRowSyllabus (Inf_InfoType_t InfoType,unsigned NumItem,int Le /***** Icon to get up an item *****/ Syl_CalculateUpSubtreeSyllabus (&Subtree,NumItem); - fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); if (Subtree.MovAllowed) { Act_FormStart (InfoType == Inf_LECTURES ? ActUp_IteSylLec : @@ -596,7 +596,7 @@ static void Syl_ShowRowSyllabus (Inf_InfoType_t InfoType,unsigned NumItem,int Le /***** Icon to get down item *****/ Syl_CalculateDownSubtreeSyllabus (&Subtree,NumItem); - fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); if (Subtree.MovAllowed) { Act_FormStart (InfoType == Inf_LECTURES ? ActDwnIteSylLec : @@ -624,7 +624,7 @@ static void Syl_ShowRowSyllabus (Inf_InfoType_t InfoType,unsigned NumItem,int Le fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); if (Level > 1) { Act_FormStart (InfoType == Inf_LECTURES ? ActRgtIteSylLec : @@ -650,7 +650,7 @@ static void Syl_ShowRowSyllabus (Inf_InfoType_t InfoType,unsigned NumItem,int Le fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"",Gbl.RowEvenOdd); if (Level < LastLevel + 1 && Level < Syl_MAX_LEVELS_SYLLABUS) { diff --git a/swad_test.c b/swad_test.c index 4335048de..6f5858c54 100644 --- a/swad_test.c +++ b/swad_test.c @@ -2483,7 +2483,7 @@ static void Tst_ListOneOrMoreQuestionsToEdit (unsigned long NumRows,MYSQL_RES *m /* Write icon to remove the question */ fprintf (Gbl.F.Out,"
", + "", Gbl.RowEvenOdd); Act_FormStart (ActRemTstQst); Sta_WriteParamsDatesSeeAccesses (); @@ -2497,7 +2497,7 @@ static void Tst_ListOneOrMoreQuestionsToEdit (unsigned long NumRows,MYSQL_RES *m fprintf (Gbl.F.Out,"", + fprintf (Gbl.F.Out,"", Gbl.RowEvenOdd); Act_FormStart (ActEdiOneTstQst); Par_PutHiddenParamLong ("QstCod",QstCod); @@ -2765,7 +2765,7 @@ static void Tst_WriteAnswersOfAQstEdit (long QstCod) /* Put an icon that indicates whether the answer is correct or wrong */ fprintf (Gbl.F.Out,"
",Gbl.RowEvenOdd); + "",Gbl.RowEvenOdd); if (Str_ConvertToUpperLetter (row[2][0]) == 'Y') fprintf (Gbl.F.Out,"\"%s\"" - "" + "" "\"%s\"" @@ -1152,7 +1152,7 @@ static void TsI_WriteRowImportedQst (struct XMLElement *StemElem, /* Put an icon that indicates whether the answer is correct or wrong */ fprintf (Gbl.F.Out,"
",Gbl.RowEvenOdd); + "",Gbl.RowEvenOdd); if (Gbl.Test.Answer.Options[NumOpt].Correct) fprintf (Gbl.F.Out,"\"%s\""); /***** Student has accepted enrollment in current course? *****/ - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" "\"\"" @@ -2716,7 +2716,7 @@ void Usr_WriteRowStdMainData (unsigned NumUsr,struct UsrData *UsrDat,bool PutChe if (UsrIsTheMsgSender) fprintf (Gbl.F.Out,"BM_SEL"); else - fprintf (Gbl.F.Out,"BM%d",Gbl.RowEvenOdd); + fprintf (Gbl.F.Out,"BM%u",Gbl.RowEvenOdd); fprintf (Gbl.F.Out,"\">" "\"%s\"" "